((Rで) 書く (Lisp) インタプリタ)の続きです。 以前の記事を見た@kohskeさんから、 環境はRの環境オブジェクトを使えば良いのでは、とアドバイスを頂きました。 やってみたら自前で環境を実装しなくて良い分簡潔になったし、より面白い使い方ができるようになりました。 コード 前回同様Gistに上げておきました。 変なところがあったら教えてください。 主な変更点は Rの環境オブジェクトを流用 Lispの関数の呼び出し方法を変更: proc(exps) から do.call(proc, exps) に 遊び方 前回と同様です。 Rインタプリタを起動してコードを読み込ませます。 repl() を実行するとLispの対話式インタプリタが起動します。 $ ls lispr.R $ R -q > source("lispr.R") > repl() lispr> (+ 1 2) 3 lisp
![((Rで) 書く ((もっとRっぽい) Lisp) インタプリタ)](https://cdn-ak-scissors.b.st-hatena.com/image/square/eca56b38026807bfc4aaef2d9a8705575f5497a4/height=288;version=1;width=512/http%3A%2F%2F3.bp.blogspot.com%2F-h4rOmGeYEwM%2FUn8waOVInvI%2FAAAAAAAAADo%2FrUPwwP4WPHQ%2Fw1200-h630-p-k-no-nu%2Flispr-plot.png)