以各种方式创建列表
Creating lists in various ways
我可以通过以下所有方式创建单元素列表 (2)
:
'(2)
(list 2)
(cons 2 nil)
但是,为什么下面会报错呢?
(2 . nil)
方案中没有“标量空值”之类的东西吗?或者有其他方法吗?
(2 . '())
确实代表单例列表'(2)
:后者是前者的shorthand。问题是,如果您在与 (cons 2 '())
相同的上下文中使用它,则会出现错误。为什么?如果您尝试计算 (2)
,您会得到同样的错误!这意味着将 2
作为函数调用,不向其传递任何参数。
如果你只想创建这样一个列表,而不调用它,你可以做与 shorthand 相同的事情:引用它。
'(2 . ())
我可以通过以下所有方式创建单元素列表 (2)
:
'(2)
(list 2)
(cons 2 nil)
但是,为什么下面会报错呢?
(2 . nil)
方案中没有“标量空值”之类的东西吗?或者有其他方法吗?
(2 . '())
确实代表单例列表'(2)
:后者是前者的shorthand。问题是,如果您在与 (cons 2 '())
相同的上下文中使用它,则会出现错误。为什么?如果您尝试计算 (2)
,您会得到同样的错误!这意味着将 2
作为函数调用,不向其传递任何参数。
如果你只想创建这样一个列表,而不调用它,你可以做与 shorthand 相同的事情:引用它。
'(2 . ())