gpt4 book ai didi

scheme - 为什么您必须使用 null 才能在方案中获得正确的列表?

转载 作者:行者123 更新时间:2023-12-04 16:41:47 26 4
gpt4 key购买 nike

我意识到这是一个完全 n00b 的问题,但我很好奇,我想我可能会在这里得到比其他任何地方更好的解释。这是一个列表(我正在使用 Dr. Scheme)

> (list 1 2 3)
(1 2 3)

我认为这只是糖:
> (cons 1 (cons 2 (cons 3 null)))
(1 2 3)

另一方面,这会做其他事情:
> (cons 1 (cons 2 3))
(1 2 . 3)

我的问题是,为什么不同?在列表末尾要求 null 有什么意义?

最佳答案

列表的定义是递归的。

 1. The null list (empty list) is a list
2. A list is made up of an item cons a list

所以这些是列表:
1. null  => ()  --read as empty list
2. cons 3 null => (3)
3. cons2 (cons 3 null) => (2, 3)

你给出的最后一个例子 cons 2 3 不符合这个列表定义,所以它不是一个列表。那就是 cons 接受一个项目和一个列表。 3 不是一个列表。

关于scheme - 为什么您必须使用 null 才能在方案中获得正确的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1689812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com