微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以各种方式创建列表

如何解决以各种方式创建列表

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

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

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

(2 . nil)

scheme 中没有“标量空”值这样的东西吗?或者有没有其他方法可以做到这一点?

解决方法

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

如果您只想创建这样的列表而不调用它,您可以使用速记做同样的事情:引用它。

'(2 . ())

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。