("v" 1) 和 ("v" . 1) 之间的区别

Difference between ("v" 1) and ("v" . 1)

开始学习scheme,遇到这个:

有什么区别

("v" . 1)

("v" 1)

他们的工作原理似乎一样,只是想知道有什么区别。我倾向于使用("v" 1),但是( cons "v" 1 ) returns ("v" . 1)。那么,有什么区别呢?

谢谢

("v" 1) 等于 (cons "v" (cons 1 '()))("v" . (1 . '())).

(foo . bar) 是当 cons-cell 不是正确列表时如何打印它。一个适当的列表是常量 '() (表示空列表)或第二个元素是适当列表的cons-cell。一个正确的列表被打印为 (x1 x2 x3 etc),其中 xi 是每个 cons-cell 的第一个元素。