<分区>
我刚刚开始学习普通的 lisp。当我阅读集合和树一章时,我对列表的结构不太了解。现在我想知道列表中的内容到底是什么。我知道缺点包括两个值,它们可以是任何类型的对象。在这里,我通过谷歌找到了一张图片。 但我很困惑。它看起来像数据结构中的通用列表。 lists in lisp
标签 list lisp common-lisp
<分区>
我刚刚开始学习普通的 lisp。当我阅读集合和树一章时,我对列表的结构不太了解。现在我想知道列表中的内容到底是什么。我知道缺点包括两个值,它们可以是任何类型的对象。在这里,我通过谷歌找到了一张图片。 但我很困惑。它看起来像数据结构中的通用列表。 lists in lisp
最佳答案
列表是使用您提到的缺点单元构建的。第二部分为 nil 的单个 cons 单元格是最简单的列表:
(cons 'A nil)
=> (A)
如果你想扩展列表,你可以将另一个单元格连接到它:
(cons 'C (cons 'B (cons 'A nil)))
=> (C B A)
所以列表是一系列链接在一起的cons单元。
此外,为了让生活更轻松,还有 list
功能。这样你就不必编写所有那些 cons
调用并且可以像这样创建列表:
(list 'C 'B 'A)
=> (C B A)
但它内部仍然是一系列 cons 单元。
关于list - 如何理解 lisp 中的列表(cons 结构),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42499158/