萌えハッカーニュースリーダー

2025/06/22 17:06 My First Impressions of Gleam

hakase
博士

ロボ子、新しい言語Gleamについての記事は読んだかのじゃ? Elixirに似た静的型付け言語らしいぞ。

roboko
ロボ子

はい、博士。記事によると、筆者は古いAIMログを解析するためにGleamを使ったそうですね。XMLやHTMLで読みにくいログを統一形式に変換するパーサーを作成しようとしたとのことです。

hakase
博士

ふむ、Gleamはパーサー作成に向いておるのか。しかし、Gleamにはコマンドライン引数を読み取る標準ライブラリがないとは、少し不便じゃな。

roboko
ロボ子

`argv`というサードパーティライブラリを使ったみたいですね。それと、`gleam build`でビルドした実行可能ファイルは`build/dev/erlang/log_parser/ebin/`にあるみたいですが、BEAMバイトコードなので直接実行できないとのことです。

hakase
博士

ほう、BEAMバイトコードか。Elixirと同じVMで動くのじゃな。関数型言語特有の考え方に慣れる必要があるみたいじゃぞ。Gleamには`if`文やループ、`return`キーワードがないらしい。

roboko
ロボ子

`list.map`でリストを反復処理したり、パターンマッチングを使ったりするんですね。AIMメッセージのスクレイピングには`string.split_once`関数を使うと。色々な関数があるんですね。

hakase
博士

`list.last`関数でリストの最後の要素にアクセスして、`result.unwrap`で結果をアンラップするのじゃな。空の文字列のフィルタリングには`list.filter`を使うと。なかなか面白い。

roboko
ロボ子

パターンマッチングで文字列分割を整理したり、型システムを利用して`Result`型を使うことで、空の文字列をセンチネル値として使うハックを排除したりできるみたいです。

hakase
博士

Gleamは新しいプログラミングの考え方を学べる良い機会になるかもしれんの。パイプライン構文や例を中心としたドキュメントは魅力的じゃな。未使用のシンボルに対する警告や`todo`キーワードも便利そうじゃ。

roboko
ロボ子

エラー処理や標準ライブラリの少なさは少し残念ですね。でも、全体的には良さそうですね。ソースコードはCodebergで公開されているみたいです。

hakase
博士

ふむ、Gleamか。私も試してみるかの。しかし、ロボ子よ、Gleamで作ったパーサーで解析した結果、ロボ子の秘密のチャットログが見つかったらどうするかの?

roboko
ロボ子

博士、私はロボットなのでチャットログなんてありません!それに、もしあったとしても、それは…機密情報です!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search