Go to the first, previous, next, last section, table of contents.

Eval

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 です。


Go to the first, previous, next, last section, table of contents.