Dans les langages de style Lisp, une liste est généralement définie comme ceci:
(list 1 2 3)
Aux fins de ce défi, toutes les listes ne contiendront que des entiers positifs ou d'autres listes. Nous laisserons également de côté le listmot - clé au début, donc la liste ressemblera maintenant à ceci:
(1 2 3)
Nous pouvons obtenir le premier élément d'une liste en utilisant car. Par exemple:
(car (1 2 3))
==> 1
Et nous pouvons obtenir la liste d'origine avec le premier élément supprimé avec cdr:
(cdr (1 2 3))
==> (2 3)
Important: cdrretournera toujours une liste, même si cette liste aurait un seul élément:
(cdr (1 2))
==> (2)
(car (cdr (1 2)))
==> 2
Les listes peuvent également figurer dans d'autres listes:
(cdr (1 2 3 (4 5 6)))
==> (2 3 (4 5 6))
Écrivez un programme qui renvoie du code qui utilise caret cdrpour renvoyer un certain entier dans une liste. Dans le code renvoyé par votre programme, vous pouvez supposer que la liste est stockée dans l, l'entier cible est lquelque part et que tous les entiers sont uniques.
Exemples:
Contribution: (6 1 3) 3
Production: (car (cdr (cdr l)))
Contribution: (4 5 (1 2 (7) 9 (10 8 14))) 8
Production: (car (cdr (car (cdr (cdr (cdr (cdr (car (cdr (cdr l))))))))))
Contribution: (1 12 1992) 1
Production: (car l)
(1 2 3) 16est-il, reviendrons-nous ()?
(1 2 3) 16ci n'apparaîtra jamais.