つくって学ぶプログラミング言語 読み (2)

2章と3章を読んでみた。 理解不足がすごいので、Okinawa.rbでヘルプしてもらう。

以下は読みながらのメモ

関数適応の評価

[:lambda, 【parameters】, 【body】] は仮引 数が【parameters】でボディが【body】の関数です。これを関数として、引数を与えることで、前章で 学んだ組み込み関数:+ と同様に関数適用することができます。

束縛:値に対して、その名前を一時的につけておいて、後でその名前を通じて値を参照するらしい Rubyのハッシュの説明わかりやすい

環境:変数とそれに束縛されている値の組みのリストのこと。

クロージャ:λ式と環境のペアのこと

プログラムが与えられると、関数ならびに引数の部分に分けられそれぞれを評価します。その後、引 数をその関数に適用します。すなわち、仮引数を引数に束縛して、関数のボディを評価します。 次は、このボディの中に含まれるプログラムについて、これら一連の処理を繰り返すことになります。 このように評価 (eval) と関数適用 (apply) を再帰的に繰り返しながらプログラムは実行されていくの です。

もう一回読みなおそう。なんかわからないモヤモヤがある…。

あぁー。スコープの部分がおかしいから、期待する値が返ってこないのか。

lookup_var(var, env)が何してるのかわかってない感。