PHPコードにコンパイルされるLispである Phel-lang が興味深い
2024/03/16
2024/04/21
Phel-lang というプログラミング言語が存在していることを最近知って少し触っているのですが、なかなか興味深いです。
Phel は、PHP にコンパイルされる関数型プログラミング言語です。これは、 ClojureとJanetからインスピレーションを得た Lisp の方言です。 Phel Language
昔Common Lisp で簡単なプログラミング言語の問題を解く練習をしたことがある程度しかLispを知らないのですが、Phel-lang は興味深く書き味も良いので楽しいです。ちょっと触った感触では、以下のような特徴があるようです。
- 副作用のある関数が少ないのでイミュータブルな変数を使って処理を書き易い。
- 基本的なデータ型である Vector や Maps の要素にアクセスする方法が簡潔でプログラムが書き易い。
- マクロもあるのでアイデアがあれば強力なDSLを作れそう。
- PHPの関数やクラスを呼び出すことが超簡単なので、PHPでできることは何でもできる。
- プログラムが壊れた時のエラーメッセージが不親切な場合がある。(結局は自分のミスが原因なのだが)
三並べのゲームを作ってみましたが、少ないコードで実装できました。
なにか、Phel-lang を使って実用的なものを作ってみたいと思っているので、アイデアを探しています。関数型言語の名前空間と関数によってモジュールを公開するという作法の勉強には役に立っています。