按位置获取列表元素

时间:2016-03-21 10:30:19

标签: lisp common-lisp

我想给一个数字并返回这个位置的元素。 列出 lab = (position 1 lab),我想知道在lisp上是否存在类似return lab[1]的内容。就像在C `C:\Users\username> phpunit --version 中一样。

2 个答案:

答案 0 :(得分:14)

在Common Lisp中,获取列表第n个元素的运算符称为nth(参见manual):

(nth 2 '(a b c d))  ; returns C

一个相关的运算符是nthcdr,它从第n个元素开始返回列表的其余部分:

(nthcdr 2 '(a b c d)) ; returns (C D)

答案 1 :(得分:5)

对于处理向量正确列表的运算符,请参阅elt

(let ((list (list 'a 'b 'c 'd)))
       (prog1 list
         (setf (elt list 1) 1)))
=> (A 1 C D)