Lispy実装を追加
だいぶ前のことになりますが、Peter Norvig 先生の Lispy を参考に別言語での再実装していました。
最近、新たに Go, Haskell, OCaml での実装を追加しました。
Go雑感
先に実装していたRubyやJavaScript版とほぼ同様に実装できているものの、 Cell型の定義にいろいろ含まれていて冗長に感じます。 Cライクの言語実装でよく見かける定義ですが、もっといいアイデアはないものか。
Haskell雑感
Go実装の前に取り組んだ時はいろいろわからず苦労していましたが、 型の取り扱いに慣れてくると割とすんなり実装できてしまいました。 唯一、構文解析でリスト構造を生成する関数で手間取りました。 相互再帰している構文解析器、これももう少しシンプルに実装できないものか。
OCaml雑感
Haskellの実装後に取り組んだこともあり、つまづくところはほぼなく完了しました。 Haskell版のソースと見比べると若干整って見えます。 Haskellはオフサイドルールがある割には表現力が高くて、ごちゃごちゃしがちなのでしょうか?
コメント
コメントを投稿