【发布时间】:2026-01-13 20:10:01
【问题描述】:
《小谋士》:
缺点法则
...cons的第二个参数必须是一个列表。
还有《小阴谋家》:
什么是
(cons s l)
其中s是'a
而l是'b没有答案。
为什么?
但如果我真的这样做了(cons 'a 'b),我会得到'(a . b),我知道这不是一个列表,但它是有效的 - 有一个答案 - 它是一对......
【问题讨论】:
-
没错,
cons的第二个参数可以是任何东西。但他们试图让你的生活更轻松,通过简化并说第二个参数是一个列表,所以你只能生成有效的列表。 -
cons在可视化方面具有神奇的功能。例如(cons 1 '(2))显示为(1 2)而不是(1 . (2)),但如果您提供非列表第二个参数,您将始终获得点格式。学习时,这会变得令人难以接受,即使在使用了一段时间后,学习 lisp 语言的人也很少真正理解cons。它就像 C 中的指针一样令人困惑,而且很少有对 C 的介绍以指针的东西开头。 -