如何理解lisp中的列表(cons结构)

时间:2017-02-28 02:35:01

标签: list lisp common-lisp

我刚开始学习常见的口齿不清。当我阅读Set and Tree章节时,我对列表的结构不太了解。现在我想知道列表中的确切含义。我知道缺点包括两个值,可以是任何类型的对象。在这里,我发现谷歌的图片。 但我很困惑。它似乎是数据结构中的通用列表。 lists in lisp

1 个答案:

答案 0 :(得分:0)

列表是使用您提到的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)

但在其内部仍然是一系列缺点。