1
在或多或少了解this question的答案之後,它在我看來,在球拍/方案中,在閱讀器級別,語法樹中每對的第二個元素必須是列表。換句話說,無論何時(A . B)
形式的虛線s表達式表示語法樹的頂點,B
只能通過作爲列表解析的s表達式,如(C D E)
。例如:(A . (C D E))
。這當然可以寫成(A C D E)
,因爲它的解析是一致的。爲什麼在Racket語法中允許「虛線對」的表達式?
(+ . (1 2 3)) ; => 6
(+ 1 2 3) ; => 6
(define . (x 1))
x ; => 1
(define y 2)
y ; => 2
我的問題是:什麼是「點對」 s表達式被允許在球拍/ Scheme語法的原因,除了內部的文字數據等?是否有可以使用配對書寫的球拍/方案表達式的示例,但是使用列表不能簡單地編寫?
任何Lisp的系統,除了Clojure中,P – leppie 2013-03-27 16:39:35
Clojure中不單獨從評估看? :-O – 2013-03-27 16:48:44
Nope'.'是一個符號(Clojure中沒有'pairs')O_o(也就是'''基本上是一個空格) – leppie 2013-03-27 16:49:56