ぱた・へね

はてなダイアリーはrustの色分けができないのでこっちに来た

Lisp interpreter in rust

最近、中国語の勉強ばかりしていたので、リハビリがてらRustでLisp処理系を作る本を買ってみました。

www.amazon.co.jp

多分、本の内容もここにある気がして、買わなくても良かったのではと思うが筆者にお金が入るならOK。

github.com

SICPにのっているような簡単なインタプリターを作ります。一回でもやったことがあれば、あーなるほどと思いながら最後までいけるはずです。本文の説明は簡潔すぎるので、あまり役に立たない。

ただ、Rustのコードは綺麗にまとまっていて、勉強なりました。Rustはこういうことしたいんだけど、みんなはどう書いているのかなってのが分からなくて困ることが多い。Testも簡潔にまとまっていて、処理系を作り込みながら自然にテストが通っていきます。ただ、Rustの場合ある程度プログラムの完成度が高くないと、テストコードのコンパイルが通らないので、そこだけはしょうがないかなって思いながら進めてました。このコードを写経するだけでも、あーなるほどと思う所が多かったです。

特に何も無くても基本Result型を返すようにして、その上では?;で処理しているのを見て、あーなるほどと思いました。

それっぽく動いたところ

Lispの勉強よりは、ちょっとしたRustの写経対象としてお勧めします。