LT駆動開発09でLTをした。

Lispインタープリタ勉強会に参加したのでLispを実装しなければいけない気がしたので、勉強したことを参考に作成しはじめてみた。 インタプリタと書くか、インタープリターと書くか、インタープリタと書くかブレまくっていたのは秘密である。

書いたコードはGistにあるんだ。

勉強会でlesson0として、用意してあったJavaScriptのコードを参考にした。 これは四則演算がすることができて、 JavaScriptの配列リテラルを使ってLISPのコードをかく。 この配列を評価できる評価機をつくる。

配列リテラルを評価したものが、それ自身がASTなので割と簡単にLISPの評価機が作れる。 ASTなんだけどLispのプログラムのように見えるからLispをつくった気分になる。 そのスタート部分を作成しただけである。 といいつつも、和しか実装していない。

しかし、Haskellのリストは同じ型の値しかリストには入れなれないので実際リストで書いてみると、値をつくる必要があり、LISP感は下がる。やはりパーサを書かねばならないのである。

やることはそんなに難しくないし、手を動かしてみると学ぶことはたくさんある。 勉強会に参加したかどうかはおいておいて、自分だけのLISPを作るべきである。

HaskellでLISPを作るなら良さ気な文献があるのでそちらをやるのもよい。