我在看R6RS(在算法語言計劃Revised6報告),在「引言」部分有一個總結:叫什麼好處「來區分lambda表達式和符號程序」
「計劃是Lisp的第一個主要方言,它將程序與lambda表達式和符號區分開來,爲所有變量使用單個詞法環境,並以 作爲操作數位置來評估過程調用的操作符位置。
我的問題是:
什麼的「區分lambda表達式和符號的程序」有什麼好處?
什麼是單一的詞彙環境?我的理解是,由於詞法範圍的原因,Scheme中的所有內容都是「詞法」的,沒有運行時間範圍,源代碼中的位置/位置意味着更多關於環境。
如何理解「以與操作數位置相同的方式評估過程調用的操作符位置」? 我的理解是操作符位置處的符號被評估爲操作數位置。例如:
(define test
(lambda (x)
((if (> x 0) + -) 1 2)))
的「(如果(> X 0)+ - )」是在操作者位置,其評價是相同其它操作數位置的評價。
如果您熟悉其他Lisp(如Common Lisp),則這些語句更有意義。 – molbdnilo