代码之家  ›  专栏  ›  技术社区  ›  Manolis Pap

按位置获取列表元素

  •  8
  • Manolis Pap  · 技术社区  · 10 年前

    我想给出一个数字并返回这个位置的元素。 列表 实验室 = (R K K K K) 我想知道这样的事情 (position 1 lab) 存在于lisp上。就像在C中一样 return lab[1] .

    2 回复  |  直到 10 年前
        1
  •  21
  •   Renzo    10 年前

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

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

    相关操作员是 nthcdr 它返回从第n个元素开始的列表的其余部分:

    (nthcdr 2 '(a b c d)) ; returns (C D)
    
        2
  •  5
  •   coredump    10 年前

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

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