エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
10行LISP評価器の実装例(各言語まとめ) - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
10行LISP評価器の実装例(各言語まとめ) - Qiita
[[["lambda",["u"],["u","u"]], ["lambda",["u"], ["lambda",["n","a","b"], ["if",["=","n",0],"a", [[... [[["lambda",["u"],["u","u"]], ["lambda",["u"], ["lambda",["n","a","b"], ["if",["=","n",0],"a", [["u","u"],["-","n",1],"b",["+","a","b"]]]]]], 21,0,1] 評価器の大まかな流れ $ev$:評価器関数名,$s$:実行コード(リスト構造),$e$:環境(初期値は空リスト),$g$:大域環境 $pm(k, v)$:文字列リストと値リストからの環境生成,$ap(x, y)$:$x$を優先検索とする環境合成 $ev(s,e)=$ $s$が文字列ならば,$ap(e,g)$から$s$に対応する値を返す. $s$が整数ならば,$s$をそのまま返す. $s_1$がifならば,$ev(s_2,e)$が真の時$ev(s_3,e)$を返し偽の時$ev(s_4,e)$を返す

