Lisp stili dillerinde bir liste genellikle şu şekilde tanımlanır:
(list 1 2 3)
Bu zorluğun amaçları doğrultusunda, tüm listeler yalnızca pozitif tamsayılar veya başka listeler içerecektir. list
Anahtar kelimeyi başlangıçta da bırakacağız , böylece liste şu şekilde görünecek:
(1 2 3)
Listenin ilk öğesini kullanarak elde edebiliriz car
. Örneğin:
(car (1 2 3))
==> 1
Ve ilk listeyi kaldırarak orijinal listeyi alabiliriz cdr
:
(cdr (1 2 3))
==> (2 3)
Önemli: cdr
Bu listede tek bir öğe olsa bile her zaman bir liste döndürülür:
(cdr (1 2))
==> (2)
(car (cdr (1 2)))
==> 2
Listeler diğer listelerin içinde de olabilir:
(cdr (1 2 3 (4 5 6)))
==> (2 3 (4 5 6))
Listede belirli bir tamsayıyı döndüren car
ve döndüren kodu döndüren bir program yazın cdr
. Programınızın döndürdüğü kodda, listenin depolandığını l
, hedef tamsayı bir l
yerde olduğunu ve tüm tamsayıların benzersiz olduğunu varsayabilirsiniz .
Örnekler:
Giriş: (6 1 3) 3
Çıktı: (car (cdr (cdr l)))
Giriş: (4 5 (1 2 (7) 9 (10 8 14))) 8
Çıktı: (car (cdr (car (cdr (cdr (cdr (cdr (car (cdr (cdr l))))))))))
Giriş: (1 12 1992) 1
Çıktı: (car l)
(1 2 3) 16
, geri dönelim ()
mi?
(1 2 3) 16
asla görünmez.