В языках стиля Лисп список обычно определяется так:
(list 1 2 3)
Для целей этой задачи все списки будут содержать только положительные целые числа или другие списки. Мы также пропустим list
ключевое слово в начале, поэтому список теперь будет выглядеть так:
(1 2 3)
Мы можем получить первый элемент списка, используя car
. Например:
(car (1 2 3))
==> 1
И мы можем получить исходный список с первым элементом, удаленным с помощью cdr
:
(cdr (1 2 3))
==> (2 3)
Важно: cdr
всегда будет возвращать список, даже если этот список будет иметь один элемент:
(cdr (1 2))
==> (2)
(car (cdr (1 2)))
==> 2
Списки также могут быть внутри других списков:
(cdr (1 2 3 (4 5 6)))
==> (2 3 (4 5 6))
Напишите программу, которая возвращает код, который использует car
и cdr
возвращает определенное целое число в списке. В коде, который возвращает ваша программа, вы можете предполагать, что список хранится в нем l
, целевое целое число находится l
где-то, и что все целые числа уникальны.
Примеры:
Входные данные: (6 1 3) 3
Выход: (car (cdr (cdr l)))
Входные данные: (4 5 (1 2 (7) 9 (10 8 14))) 8
Выход: (car (cdr (car (cdr (cdr (cdr (cdr (car (cdr (cdr l))))))))))
Входные данные: (1 12 1992) 1
Выход: (car l)
(1 2 3) 16
, мы вернемся ()
?
(1 2 3) 16
никогда не будет отображаться.