以各种方式创建列表

Creating lists in various ways

我可以通过以下所有方式创建单元素列表 (2)

'(2)      
(list 2)  
(cons 2 nil)

但是,为什么下面会报错呢?

(2 . nil)

方案中没有“标量空值”之类的东西吗?或者有其他方法吗?

(2 . '())确实代表单例列表'(2):后者是前者的shorthand。问题是,如果您在与 (cons 2 '()) 相同的上下文中使用它,则会出现错误。为什么?如果您尝试计算 (2),您会得到同样的错误!这意味着将 2 作为函数调用,不向其传递任何参数。

如果你只想创建这样一个列表,而不调用它,你可以做与 shorthand 相同的事情:引用它。

'(2 . ())