基本LISP问题

基本LISP问题,lisp,common-lisp,Lisp,Common Lisp,所以汽车'23->2 我应该使用哪一个函数才能得到3的结果 (function-name '(2 3)) -> 3 只需执行以下操作即可: (car (cdr '(2 3))) 这与: (cadr '(2 3)) 这是因为car获取表达式中的第一个元素,而cdr返回列表的其余部分,而不返回第一个元素。您已经展示了cdr'2 3返回一个3的列表。因此,这辆车是元素而不是列表,3。顺便说一句,cdr'2 3是cdr 3,它是 LISP不是很有趣吗?只需执行以下操作即可: (car (cd

所以汽车'23->2

我应该使用哪一个函数才能得到3的结果

(function-name '(2 3)) -> 3

只需执行以下操作即可:

(car (cdr '(2 3)))
这与:

(cadr '(2 3))
这是因为car获取表达式中的第一个元素,而cdr返回列表的其余部分,而不返回第一个元素。您已经展示了cdr'2 3返回一个3的列表。因此,这辆车是元素而不是列表,3。顺便说一句,cdr'2 3是cdr 3,它是


LISP不是很有趣吗?

只需执行以下操作即可:

(car (cdr '(2 3)))
这与:

(cadr '(2 3))
这是因为car获取表达式中的第一个元素,而cdr返回列表的其余部分,而不返回第一个元素。您已经展示了cdr'2 3返回一个3的列表。因此,这辆车是元素而不是列表,3。顺便说一句,cdr'2 3是cdr 3,它是

LISP不是很有趣吗?

提示:

car指的是列表中的第一个元素

cdr指的是列表的其余部分,它本身就是一个列表

因此,您需要的是一个函数,该函数从包含最后一个元素的列表中返回第一个元素。

提示:

car指的是列表中的第一个元素

cdr指的是列表的其余部分,它本身就是一个列表


因此,您需要的是一个函数,该函数从包含最后一个元素的列表中返回第一个元素。

您也可以使用第二个'2 3'。second是cadr的另一个名称。

您也可以使用second'2 3。第二个是cadr的另一个名字。

如果你要为他回答作业,你最好解释一下为什么这样做。非常感谢!我不知道我怎么会不想到只用一个元素来运行汽车。没问题。我为澄清添加了额外的解释。@Drew:为了清楚起见,它有助于区分在元素上运行和在列表上运行,即使该列表只有一个元素。所以当你提到在单个元素上运行car时,你实际上是在一个列表上运行car,该列表中有一个元素,或者单个元素+空列表,它总是在那里。如果你要为他回答作业,你最好解释一下为什么这样做。非常感谢!我不知道我怎么会不想到只用一个元素来运行汽车。没问题。我为澄清添加了额外的解释。@Drew:为了清楚起见,它有助于区分在元素上运行和在列表上运行,即使该列表只有一个元素。所以当你提到在单个元素上运行car时,你实际上是在一个列表上运行car,该列表中有一个元素,或者单个元素+空列表,它总是在那里,这个问题也可以用defun foo something declare ignore something 3.关于列表如何在内部工作以及如何使用car、cdr、cadr。。。我在一本古老但优秀的书《公共Lisp:符号计算的温和介绍》中找到了它。正如所提出的,这个问题也可以用defun foo something declare ignore something 3.对列表如何在内部工作以及如何使用car、cdr、cadr等的最佳解释。。。我在一本古老但优秀的书《公共Lisp:符号计算的温和介绍》中找到了它。