初めに 先日Rustの勉強で、jpmens/joをRustに移植してみたんですが、 ちょっと課題がシンプル過ぎたので、Lisp処理系を書いてみました。 本記事は「こんなことをやったよ」くらいの内容で、実装について細かくは書いていないため、 それでも興味ある方は読んでもらえたら嬉しいです。 rispについて 四則演算、変数、関数しか動かない簡単なインタプリタです。 実装 Lisp自体がよくわかっていないので、お気楽 Common Lisp プログラミング入門を読みつつ雰囲気を掴んでいまた。 Lispのリスト構造は(関数 引数...)という感じなので、stack/pop すれば動くかなと思って、最初はこんな感じに雑に実装していました。 初期実装 fn eval(&mut self, chars: &mut Peekable<Chars>) -> String { loop { let ch =