按位置获取列表元素

Man*_*Pap 5 lisp common-lisp

我想给一个数字并返回这个位置的元素.列出 lab = (R K K K K)我想知道(position 1 lab)在lisp上是否存在这样的东西.就像C return lab[1].

Ren*_*nzo 15

在Common Lisp中,调用获取列表第n个元素的运算符nth(参见手册):

(nth 2 '(a b c d))  ; returns C
Run Code Online (Sandbox Code Playgroud)

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

(nthcdr 2 '(a b c d)) ; returns (C D)
Run Code Online (Sandbox Code Playgroud)


cor*_*ump 5

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

(let ((list (list 'a 'b 'c 'd)))
       (prog1 list
         (setf (elt list 1) 1)))
=> (A 1 C D)
Run Code Online (Sandbox Code Playgroud)