【发布时间】:2013-03-27 16:13:40
【问题描述】:
在或多或少地理解了this question 的答案之后,在我看来,在 Racket/Scheme 中,在读者级别,语法树中每对的第二个元素必须是一个列表。换句话说,每当(A . B) 形式的点式s 表达式表示语法树的一个顶点时,B 只能通过解析为列表的s 表达式,如(C D E)。例如:(A . (C D E))。这当然可以写成(A C D E),因为解析是一样的。
(+ . (1 2 3)) ; => 6
(+ 1 2 3) ; => 6
(define . (x 1))
x ; => 1
(define y 2)
y ; => 2
我的问题是:除了内部文字数据之外,Racket/Scheme 语法中允许“点对”s 表达式的原因是什么?是否有一个 Racket/Scheme 表达式的示例可以使用对编写,但不能使用列表更简单地编写?
【问题讨论】: