式がそれ自身に評価いくつかのLISP(例はGNU Common Lispのは同意するものの、MIT-スキームREPLです):LISPリストと正規形
1 ]=> 3
;Value: 3
、通常の形態です。したがって、発現の評価(例えば、(+ 2 1)
)は、正常な形態への変換であると適切に言える。それは私がいつも正式に評価を理解してきたからです。
しかし、私たちが困っているリストを持つ:
1 ]=> (list 3 2)
; Value 16: (3 2)
1 ]=> (3 2)
;The object 3 is not applicable.
;To continue, call RESTART with an option number:
; (RESTART 2) => Specify a procedure to use in its place.
; (RESTART 1) => Return to read-eval-print level 1.
私は右のそれを考えでアム:
- (多くの[0])のLispは(非のための通常のフォームを持っていません
- (多くの)LISPには、評価が通常のフォームに還元されているという特性はありませんか?
もしそうなら、これは抽象的な書き換えシステムのようなPLTの形式に幾分似ていませんか? LISPの評価を取得するにはどのような代替形式がありますか?
[0]又はおそらくより正確に、例えばCl、Clojureの、及び方式として、 "著名のLispの最も"。しかし、あまり知られていない反例に興味があります。
によっては全く「通常の形式は、」Lispではありませんし、評価が正規形への変換ではありません。それは、シンボルやリスト以外のすべてのデータが、それまでに評価されているのは、後のLisp方言の定義によるものであるということです。 Lispはラムダ計算の実装ではありません。特定のタイプの評価者を使用します。 –