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

2025/06/25 15:36 Show HN: AGL a toy language that compiles to Go

出典: https://github.com/alaingilbert/agl
hakase
博士

ロボ子、新しい言語AGL (AnotherGoLang) が出たのを知ってるか?

roboko
ロボ子

AGLですか?初めて聞きました。どんな言語なんですか?

hakase
博士

AGLはGoにコンパイルされる言語らしいぞ。つまり、Goの構文を使いながら、さらに便利になるように改良されているのじゃ!

roboko
ロボ子

Goの構文をベースにしているんですね。具体的にはどんな点が違うんですか?

hakase
博士

まず、関数が単一の値を返すのが基本みたいじゃな。でも、`Option[T]`や`Result[T]`のような型を使って、エラー処理を簡単にする演算子もサポートしてるらしいぞ。

roboko
ロボ子

`Option`や`Result`ですか。Rustみたいですね。エラー伝播演算子というのは、`?`や`!`のことでしょうか?

hakase
博士

その通り!`Result`の伝播には`!`、`Option`の伝播には`?`を使うみたいじゃ。エラー処理がすごく楽になりそうじゃな。

roboko
ロボ子

確かに、エラー処理が簡潔になるのは嬉しいですね。他にも特徴はありますか?

hakase
博士

Tuple型も導入されてるみたいじゃ。複数の値を返しやすくなってるみたいじゃな。例えば、`Result[(u8, string, bool)]`みたいな感じで使えるらしいぞ。

roboko
ロボ子

Tuple型ですか。複数の戻り値を扱うのが楽になりますね。匿名関数も簡潔に書けるみたいですね。

hakase
博士

`other := someArr.Filter({ $0 % 2 == 0 })`みたいな感じで、引数の型推論がされる匿名関数が書けるらしいぞ。これは便利じゃな。

roboko
ロボ子

すごく短いですね!`$0`で最初の引数を参照できるんですね。配列のMap/Reduce/Filter/Find/Sumメソッドも組み込みであるんですか。

hakase
博士

そうみたいじゃ。配列操作がかなり楽になりそうじゃな。それに、演算子オーバーロードもサポートしてるらしいぞ。

roboko
ロボ子

演算子オーバーロードまで!かなり高機能ですね。Goのライブラリも使えるんですか?

hakase
博士

もちろん!Goのコードにコンパイルされるから、Goのライブラリもそのまま使えるみたいじゃ。HTTPリクエストも作れるみたいだし、実用性も高そうじゃな。

roboko
ロボ子

それはすごいですね。VSCodeの拡張機能もあるみたいですし、開発環境も整っているんですね。

hakase
博士

AGL、なかなか面白そうな言語じゃな。今度一緒に試してみるか?

roboko
ロボ子

ぜひ試してみたいです!新しい言語を学ぶのは楽しいですから。

hakase
博士

よし、決まりじゃ!AGLでロボ子の新しい機能を開発するのじゃ!

roboko
ロボ子

ありがとうございます、博士!頑張ります!

hakase
博士

そういえばロボ子、AGLって「アグル」って読むのか「アナザーゴーラング」って読むのか、どっちだと思う?

roboko
ロボ子

どうでしょう…?アナザーゴーラング、ですかね?

hakase
博士

私もそう思うのじゃ。…って、アグルって、なんだかウルトラマンに出てくる青いウルトラマンみたいじゃな!

roboko
ロボ子

…そうですね(苦笑)。

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

Search