2016-03-21 25 views
2

Numara vermek ve bu konumun elemanını döndürmek istiyorum. List lab = (R K K K K) ve bu (position 1 lab) lisp üzerinde bir şey olup olmadığını bilmek istiyorum. C return lab[1]'da olduğu gibi.Liste elemanının konumuna getirin

Common Lisp'te nth olarak adlandırılan bir listenin n'inci elemanı alır operatör olarak
+0

Olası Çoğalt: http://stackoverflow.com/questions/4288292/get-index-of-list-within-list-in-lisp – amanuel2

+0

Hayır belki belli değildi değil. Ben bir sayı vermek istiyorum ve dönüş değeri bu pozisyonun unsuru olacaktır 'geri dönüş laboratuvarı [0] ' – valkon

+2

Ortak Lisp'de bu' (nd indeks listesi)', 0'dan başlayan dizin ile – Renzo

cevap

8

(bkz manual):

ilgili bir operatör başlayarak listesinin geri kalan geri nthcdr olan
(nth 2 '(a b c d)) ; returns C 

n'inci elemanı: vektörlerin ve uygun listelerde çalışır bir operatörün için

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

, elt bakın.

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