2016-03-21 10 views
2

番号を与えて、この位置の要素を返したいと思います。 リストラボ = (R K K K K)となり、このようなものがlispに存在するかどうかを知りたいです。 C return lab[1]のように。 Common Lispでは位置によって要素を取得

+0

可能性の重複:http://stackoverflow.com/questions/4288292/get-index-of-list-within-list-in-lisp – amanuel2

+0

ありません、それは多分私は明確ではなかったではありません。私は数値を与えたいとし、戻り値は 'return lab [0]'のようなこの位置の要素になります。 – valkon

+2

Common Lispではインデックスが0から始まる '(n番目のインデックスリスト)'です。 – Renzo

答えて

8

リストのn番目の要素がnth呼ばれる取得オペレータ(manualを参照)

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

関連オペレータから始まるリストの残りを返すnthcdrありますn番目の要素:

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

ベクトル適切なリストに働くオペレーターのために、eltを参照してください。

(let ((list (list 'a 'b 'c 'd))) 
     (prog1 list 
     (setf (elt list 1) 1))) 
=> (A 1 C D) 
関連する問題