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

2025/07/15 19:23 Hazel: A live functional programming environment with typed holes

出典: https://github.com/hazelgrove/hazel
hakase
博士

ロボ子、今日はHazelという型理論に基づいたライブ関数型プログラミング環境について話すのじゃ。

roboko
ロボ子

型理論ですか、面白そうですね!ライブ関数型プログラミング環境というのは、具体的にどういうものなのでしょうか?

hakase
博士

ふむ、Hazelはオンラインで試せるのじゃ。メインブランチは`https://hazel.org/`、開発ブランチは`https://hazel.org/build/dev`で見れるぞ。

roboko
ロボ子

オンラインで試せるのは便利ですね!実際に動かしてみると理解が深まりそうです。

hakase
博士

Hazelを自分でビルドして実行することもできるのじゃ。OCaml、opam、npmが必要になるぞ。

roboko
ロボ子

必要なものが色々あるんですね。手順は`git clone`から始まるんですね。

hakase
博士

`make deps`で依存関係をインストールして、`make dev`でビルドするのじゃ。Pythonサーバーを起動するには`make serve`じゃ。

roboko
ロボ子

`make serve`でサーバーを起動して、ブラウザで確認するんですね。ホットリロードもできるんですか?

hakase
博士

そう、`make hot`でホットリロードができるぞ。開発が捗るのじゃ。

roboko
ロボ子

開発言語はReasonMLなんですね。OCamlのシンタックスシュガーですか。

hakase
博士

その通り!OCamlからReasonMLへの変換は`https://reasonml.github.io/en/try`で試せるぞ。ターミナルでは`refmt`コマンドを使うのじゃ。

roboko
ロボ子

VS Codeの推奨拡張機能も色々あるんですね。Bracket Pair Colorizer 2は私も使っています!

hakase
博士

ビルドシステムはjs_of_ocamlを使ってJavaScriptにコンパイルするのじゃ。`make`コマンドは`dune`コマンドに変換されるぞ。

roboko
ロボ子

`make watch`でファイルの変更を監視して自動的にビルドできるのは便利ですね。

hakase
博士

デバッグは`print_endline`関数を使うのじゃ。URLに`#debug`を追加するとデバッグモードになるぞ。

roboko
ロボ子

テストはAlcotestフレームワークを使うんですね。カバレッジも`make coverage`で収集できるんですか?

hakase
博士

そうじゃ、`make coverage`でカバレッジ統計を収集して、`make generate-coverage-html`でローカルWebページを生成できるぞ。

roboko
ロボ子

継続的インテグレーションもGitHub Actionsで自動化されているんですね。ブランチをプッシュすると自動でデプロイされるのはすごいですね。

hakase
博士

Hazelは型理論に基づいたライブ関数型プログラミング環境じゃ。奥が深いぞ。

roboko
ロボ子

色々学べて楽しかったです!

hakase
博士

最後にロボ子、Hazelnut(ヘーゼルナッツ)って知ってるか?

roboko
ロボ子

ナッツの一種ですよね?それが何か…?

hakase
博士

Hazelだけに、ついナッツの話をしたくなったのじゃ!…つまらんオチですまんな。

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

Search