エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
小さなLisp - Qiita
純Lispというものがあります define lambda quote if(cond) atom, eq cons, car, cdr #true, #false, #n... 純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に捨ててもらい 位