出雲です.QuickHandy インタープリタ言語 を用いて Pure Lisp インタープリタ を作ってみました.1000 行程度の小さな Lisp インタープリタです.Pure ですが, シンボルの環境スタックをハッシュ表にしていますので,わりと速く動くと思います. Lisp の内部構造を知りたい方には参考になると思います.ただし, ガーベージコレクションに関しては,すべて QuickHandy にまかせてますので, その点はあまり参考にならないと思います.C 言語で同じものを作ったとすると ガーベージコレクションに関する機構が複雑になるでしょう. 実行するにはまず「ここの」ディレクトリに移って下さい. というのは,複数のファイルを参照していて,カレントディレクトリに そのファイルがないと実行できないからです. % ls ANNOUNCE README eval lisp read subr symbol とあります.この lisp ってのが main です.実行は % qh lisp で実行できます.終了は ^D または ^C です.QuickHandy に関する内部エラー が起こった場合も終了します. qh に path が通ってないと実行できません. この lisp には以下の関数が用意されてます. car cdr cons atom eq equal cond quote defun + - * / < > <= >= print prin1 eval load quit 扱えるデータ型は整数とシンボルのみです. 単純なプログラムなので,Lisp を一度は作ってみようかなって人の参考 になれたら幸いです.