evaluation (訳注:evaluator の誤まりでは??)とは Lisp が(全ての)フォームを評価 するのに用いる手段のことです。各々のフォームの評価のされ方に関する詳細はセク ション 3.2 [フォーム]、ページ 24 を参照して下さい。以下に記述した関数や変数は evaluator を呼び出したり infinite recursions に入らないよう限界(値)を定義する ためのものです。
Function: eval form
この関数は、カレントな環境で (i.e., そのスタック上のバインディングを用い) (環境のもっとよい定義が必要!!) アーギュメントの評価を行ない、その結果を返 します。 eval は特殊フォームではないため、アーギュメントを 2 回評価する点 に注意して下さい。
(setq foo 'bar) => bar (setq bar 'baz) => baz (eval foo) =>baz
Command: eval-current-buffer &optional printflag
この関数は、カレントなバッファを Lisp コードとして評価します。バッファの終
りに達するかエラーになる(そして扱われない??)まで、 (バッファ中の)各フォー ムに対し繰返し evaluator を呼びます。 printflag が与えられた場合、それは評 価を行なう際の standard-output の値になります。
(通常)この関数はインタラクティブに呼ばれ、その場合 printflag はデフォルト で nil になります。 nil を返します。
Command: eval-region start end &optional printflag
この関数は、カレントバッファの start と end で定義されるリージョンの内容を Lisp コードとして実行します。リージョンの終りに達するか (扱われない)エラー が生ずるまで、リージョン中の各フォームに対し繰返し evaluator を呼びます。 printflag が与えられた場合、それは評価を行なう際の standard-output の値に なります。
インタラクティブに呼ばれた場合、 start と end はマークとポイントの位置で、 printflag はデフォルトで nil になります。 nil を返します。
Variable: max-specpdl-size
この変数の値は、Lisp 変数のバインディングと unwindprotect の (エラーになら ない範囲の)数の限界(値)です。これは正しく定義されてない関数で生じうる infinite recursion を避けるため(Lisp が)用いる手段の 1つです。
Variable: max-lisp-eval-depth
この変数の値は、 eval, apply, funcall に対する呼び出しにおいて (エラーにな らない範囲として)許された深さの限界(値)です。これは正しく定義されてない関 数で生じうる infinite recursion を避けるため(Lisp が)用いる手段の 1つで す。デフォールトの値は 200 です。