所以(car '(2 3)) -> 2
(cdr '(2 3)) -> (3)
我应该使用哪个函数来获得产生 3 的东西?
(function-name '(2 3)) -> 3
所以(car '(2 3)) -> 2
(cdr '(2 3)) -> (3)
我应该使用哪个函数来获得产生 3 的东西?
(function-name '(2 3)) -> 3
简单地做应该没问题:
(car (cdr '(2 3)))
这与以下内容相同:
(cadr '(2 3))
这是因为“car”获取表达式中的第一个元素,而 cdr 返回列表的其余部分,没有第一个元素。您已经展示了“(cdr '(2 3))”返回一个“(3)”列表。因此,这个的“汽车”是元素(不是列表),“3”。顺便说一句,“(cdr(cdr('2 3)))”是“(cdr(3))”,即“()”。
LISP 不好玩吗?
Hints:
car
refers to the first element in the list.
cdr
refers to the remainder of the list, and is itself a list.
So what you need is a function that returns the first element from a list containing the last element.
你也可以使用(second '(2 3))
. second
是 的另一个名称cadr
。