以下两个表达式是等效的:
(third (list 1 2 3 4))
(first (nthcdr 2 (list 1 2 3 4)))
然而,使用“第三”,“第四”,“第五”等并不总是实用的,(first (nthcdr n list))
似乎有点冗长。有没有办法说出像(item 2 (list 1 2 3 4))
这样的东西来获取列表中的第n个项目?
答案 0 :(得分:14)
(nth 3 (list 1 2 3 4))
返回第4项(基于零!)
访问者 NTH
说明强>
第n个找到列表的 n 元素,其中列表的 car < / em>是“第0个”元素。具体地,
(nth n list) == (car (nthcdr n list))
<强>示例:强>
(nth 0 '(foo bar baz)) => FOO (nth 1 '(foo bar baz)) => BAR (nth 3 '(foo bar baz)) => NIL (setq 0-to-3 (list 0 1 2 3)) => (0 1 2 3) (setf (nth 2 0-to-3) "two") => "two" 0-to-3 => (0 1 "two" 3)
答案 1 :(得分:12)