在Lisp样式语言中,列表通常是这样定义的:
(list 1 2 3)
出于此挑战的目的,所有列表将仅包含正整数或其他列表。我们还将list在开始时省略关键字,因此列表现在如下所示:
(1 2 3)
我们可以使用来获取列表的第一个元素car。例如:
(car (1 2 3))
==> 1
我们可以得到原始列表,其中第一个元素被删除cdr:
(cdr (1 2 3))
==> (2 3)
重要说明:cdr即使该列表只有一个元素,也将始终返回一个列表:
(cdr (1 2))
==> (2)
(car (cdr (1 2)))
==> 2
列表也可以在其他列表中:
(cdr (1 2 3 (4 5 6)))
==> (2 3 (4 5 6))
编写一个程序,该程序返回使用car并cdr返回列表中某个整数的代码。在程序返回的代码中,您可以假定列表存储在中l,目标整数在l某处,并且所有整数都是唯一的。
例子:
输入: (6 1 3) 3
输出: (car (cdr (cdr l)))
输入: (4 5 (1 2 (7) 9 (10 8 14))) 8
输出: (car (cdr (car (cdr (cdr (cdr (cdr (car (cdr (cdr l))))))))))
输入: (1 12 1992) 1
输出: (car l)
(1 2 3) 16我们该回来()吗?
(1 2 3) 16永远不会出现这样的情况。