Dalam bahasa gaya Lisp, daftar biasanya didefinisikan seperti ini:
(list 1 2 3)
Untuk keperluan tantangan ini, semua daftar hanya akan berisi bilangan bulat positif atau daftar lainnya. Kami juga akan meninggalkan listkata kunci di awal, sehingga daftar sekarang akan terlihat seperti ini:
(1 2 3)
Kita bisa mendapatkan elemen pertama dari daftar dengan menggunakan car. Sebagai contoh:
(car (1 2 3))
==> 1
Dan kita bisa mendapatkan daftar asli dengan elemen pertama dihapus dengan cdr:
(cdr (1 2 3))
==> (2 3)
Penting: cdrakan selalu mengembalikan daftar, meskipun daftar itu memiliki satu elemen:
(cdr (1 2))
==> (2)
(car (cdr (1 2)))
==> 2
Daftar juga dapat berada di dalam daftar lain:
(cdr (1 2 3 (4 5 6)))
==> (2 3 (4 5 6))
Tulis program yang mengembalikan kode yang menggunakan cardan cdruntuk mengembalikan integer tertentu dalam daftar. Dalam kode yang dikembalikan oleh program Anda, Anda dapat mengasumsikan bahwa daftar tersebut disimpan l, bilangan bulat target ada di lsuatu tempat, dan bahwa semua bilangan bulat itu unik.
Contoh:
Memasukkan: (6 1 3) 3
Keluaran: (car (cdr (cdr l)))
Memasukkan: (4 5 (1 2 (7) 9 (10 8 14))) 8
Keluaran: (car (cdr (car (cdr (cdr (cdr (cdr (car (cdr (cdr l))))))))))
Memasukkan: (1 12 1992) 1
Keluaran: (car l)
(1 2 3) 16kita kembali ()?
(1 2 3) 16ini tidak akan pernah muncul.