gpt4 book ai didi

list - lisp 方案列表

转载 作者:太空宇宙 更新时间:2023-11-03 19:02:43 31 4
gpt4 key购买 nike

为什么 (cons (list 1 2) (list 3 4)) 的结果是 ((1 2) 3 4)

我想知道为什么结果长度是 3(3 个元素)。我的直觉让我认为(list 1 2)是一个列表,(list 3 4)也是一个列表。通过使用 cons 过程,结果应该是两个元素,每个元素都是一个列表,但结果并不像我期望的那样。

谁能告诉我为什么?谢谢。

最佳答案

(list a b c) 根据定义等同于 (cons a (list b c))(或者,如果继续转换,(cons a ( cons b (cons c nil))).

所以如果你写(cons 1 (list 3 4)),这等同于(cons 1 (cons 3 (cons 4 nil))),或者到 (列表 1 3 4)

现在,将 1 替换为 (list 1 2),您将得到:(cons (list 1 2) (cons 3 (cons 4 nil ))),或者等效的(list (list 1 2) 3 4)(或者,完全写出来,(cons (cons 1 (cons 2 nil)) (cons 3 (cons 4 nil)))).

这里的关键是 cons 不是 append,也不是 list(平等对待所有元素):它本质上是不对称的,在处理列表时。左侧位置包含元素(“head”);右边的包含列表的其余部分(“尾部”)。

关于list - lisp 方案列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14574406/

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