En los idiomas de estilo Lisp, una lista generalmente se define así:
(list 1 2 3)
Para los propósitos de este desafío, todas las listas solo contendrán enteros positivos u otras listas. También dejaremos de lado la listpalabra clave al principio, por lo que la lista ahora se verá así:
(1 2 3)
Podemos obtener el primer elemento de una lista usando car. Por ejemplo:
(car (1 2 3))
==> 1
Y podemos obtener la lista original con el primer elemento eliminado con cdr:
(cdr (1 2 3))
==> (2 3)
Importante: cdrsiempre devolverá una lista, incluso si esa lista tuviera un solo elemento:
(cdr (1 2))
==> (2)
(car (cdr (1 2)))
==> 2
Las listas también pueden estar dentro de otras listas:
(cdr (1 2 3 (4 5 6)))
==> (2 3 (4 5 6))
Escriba un programa que devuelva el código que usa cary cdrpara devolver cierto número entero en una lista. En el código que devuelve su programa, puede suponer que la lista está almacenada l, el entero objetivo está enl algún lugar y que todos los enteros son únicos.
Ejemplos:
Entrada: (6 1 3) 3
Salida: (car (cdr (cdr l)))
Entrada: (4 5 (1 2 (7) 9 (10 8 14))) 8
Salida: (car (cdr (car (cdr (cdr (cdr (cdr (car (cdr (cdr l))))))))))
Entrada: (1 12 1992) 1
Salida: (car l)
(1 2 3) 16si regresamos ()?
(1 2 3) 16lo que nunca se mostrará un caso como .