scheme - 以各种方式创建列表
问题描述
我可以通过以下所有方式创建单元素列表(2)
:
'(2)
(list 2)
(cons 2 nil)
但是,为什么以下给出错误?
(2 . nil)
方案中没有“标量空”值这样的东西吗?还是有其他方法可以做到这一点?
解决方案
(2 . '())
确实代表了单例列表'(2)
:后者是前者的简写。问题是,如果您在与您将要使用(cons 2 '())
的上下文相同的上下文中使用它,则会出现错误。为什么?如果您尝试评估,您会得到同样的错误(2)
!这意味着2
作为函数调用,不传递任何参数。
相反,如果您只想创建这样一个列表,而不调用它,您可以使用速记执行相同的操作:引用它。
'(2 . ())
推荐阅读
- python - 减少 MFCC 输出
- amazon-web-services - 在本地运行 AWS SAM CLI 时启用 CORS
- spring-data-mongodb - Mongobee MongoQueryException:没有经过身份验证的用户
- angular - How to pass data from one component to another in Angular without creating new instance?
- javascript - 谷歌浏览器错误还是什么?
- c# - c# 按多列分组,然后选择 count > 1 的所有字段
- javascript - 删除多个数组Javascript中重复的所有唯一值
- smartsheet-api - 遍历工作表并附加列
- c - 有人可以帮助解释这个 C 算法在做什么吗?
- c# - 为tabcontrol中的每个tabitem添加多个datatable和tabitem.content