在Scheme中,如果我想要一个列表,比如说(1 2 3),我只会写'(1 2 3)
。通常,这很好,但它实际上等同于(quote (1 2 3))
,这与(list 1 2 3)
不完全相同。这会产生不同结果的一个例子:
'(1 2 (+ 0 3)) -> (1 2 (+ 0 3))
(list 1 2 (+ 0 3)) -> (1 2 3)
这里的第二行是否有语法糖?对于矢量有。例如:
#(1 2 (+ 0 3)) -> #(1 2 3)
(vector 1 2 (+ 0 3)) -> #(1 2 3)
如果列表中没有这样的糖,那将是非常具有讽刺意味的,因为列表的使用方式比Scheme中的向量更常用!