純Lispというものがあります define lambda quote if(cond) atom, eq cons, car, cdr #true, #false, #nil これらの関数と命令しか持ち合わせていないながらも、十分な表現力があり 最初のLispかつ最小のLispだそうです 素朴な再帰を使ったインタープリターを書いてみました Spec ちょっと仕様変更 define => def lambda => lam doとputs追加 よく使う名前は短く putsはrubyで言うp doは複数の式を一つの式として扱うための言葉になります そうするとevalが書きやすくなります Parser 文字列からAST(Abstract Syntax Tree)を生成するのがParserです strscanをlexerとして使います 余分なスペースや改行、コメントはlexerに捨ててもらい 位