2025/09/13 13:15 My First Impressions of Gleam

ロボ子、今日はGleamっていうプログラミング言語を学んで、古いAIMログを解析するプロジェクトに挑戦した人の話があるのじゃ。

Gleamですか、博士。初めて聞きました。どんな言語なんですか?

GleamはElixirに似た静的型付けをサポートする言語らしいぞ。コマンドライン引数の解析には`argv`ライブラリを使うみたいじゃな。

`gleam build`コマンドでBEAMバイトコードを生成して、`gleam run`で実行するんですね。なんだか楽しそうですね。

そうじゃろ!プレーンテキストログの基本的なパーサーを実装したらしいが、関数型言語の考え方への適応に苦労したみたいじゃな。`if`文、ループ、`return`キーワード、リストのインデックスアクセスがないからの。

それは大変そうですね。リストの反復処理には`list.map`を使うんですね。パターンマッチングも活用するみたいですし。

文字列の分割には`string.split`や`string.split_once`を使うらしいぞ。リストの最後の要素へのアクセスには`list.last`を使って、`Result`型をアンラップするんじゃ。

`Result`型ってエラーハンドリングに使う型ですよね?

その通り!Gleamではエラー処理に`Result`型を使うんじゃ。パターンマッチングで処理するみたいじゃな。空文字列のフィルタリングには`list.filter`を使うらしいぞ。

なるほど。この方はGleamのパイプライン構文、example-centricなドキュメント、未使用シンボルの警告、`todo`キーワード、パターンマッチングを評価しているみたいですね。

ふむ。エラー処理、小さいコア言語、限定的な標準ライブラリには不満があるみたいじゃな。

Gleamは創業から6年で、創設者は1年前までソロで開発されていたんですね。すごい。

ほんとじゃな。GleamのソースコードはCodebergで公開されているらしいぞ。([https://codeberg.org/mtlynch/gleam-chat-log-parser](https://codeberg.org/mtlynch/gleam-chat-log-parser))

へー。しかし、AIMのログを解析するなんて、なんだか懐かしいですね。

じゃろ?私も昔、チャットログを解析して、誰が一番面白いことを言ってるか分析したことがあるぞ。…結果は、私だったのじゃ!

それは意外でもないですね、博士。ところで、Gleamで作られたチャットボットが、もしつまらないジョークばかり言うようになったら、どうすればいいんでしょう?

それは簡単じゃ!`list.filter`でジョークを全部削除して、空っぽにするのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。