Lispy実装を追加

だいぶ前のことになりますが、Peter Norvig 先生の Lispy を参考に別言語での再実装していました。

kawakami-o3/yaLispy

最近、新たに Go, Haskell, OCaml での実装を追加しました。

Go雑感

先に実装していたRubyやJavaScript版とほぼ同様に実装できているものの、 Cell型の定義にいろいろ含まれていて冗長に感じます。 Cライクの言語実装でよく見かける定義ですが、もっといいアイデアはないものか。

Haskell雑感

Go実装の前に取り組んだ時はいろいろわからず苦労していましたが、 型の取り扱いに慣れてくると割とすんなり実装できてしまいました。 唯一、構文解析でリスト構造を生成する関数で手間取りました。 相互再帰している構文解析器、これももう少しシンプルに実装できないものか。

OCaml雑感

Haskellの実装後に取り組んだこともあり、つまづくところはほぼなく完了しました。 Haskell版のソースと見比べると若干整って見えます。 Haskellはオフサイドルールがある割には表現力が高くて、ごちゃごちゃしがちなのでしょうか?

コメント

このブログの人気の投稿

git-svnでFILE was not found in commit HASH

神スクリプトの使い方 Codeforces編

JavaでIRCクライアント