Получить список через вызов функций LIST, CAR, CDR - Lisp
Формулировка задачи:
Получите список (X Y Z) из заданных списков с помощью вызова функций LIST, CAR, CDR:
1. ((A) (B X) (C D)) ((Y (Z)))
2. (A X B Y) (F Z)
Решение задачи: «Получить список через вызов функций LIST, CAR, CDR»
textual
Листинг программы
[23]> (list (car (cdr (car (cdr '((a) (b x) (c d)))))) (car (car '((y (z))))) (car (car (cdr (car '((y (z)))))))) (X Y Z) [28]> (list (car (cdr '(a x b y))) (car (cdr (cdr (cdr '(a x b y))))) (car (cdr '(f z)))) (X Y Z)
Объяснение кода листинга программы
[23]> В данном коде используется язык программирования Lisp. Код выполняет следующие действия:
- Вызывает функцию LIST, которая создает список из элементов (a), (b x), (c d).
- Затем, код вызывает функцию CAR, которая извлекает первый элемент из списка (a), (b x), (c d). Значение этого элемента будет (a).
- После этого, код вызывает функцию CDR, которая извлекает второй элемент из списка (a), (b x), (c d). Значение этого элемента будет (b x).
- Затем, код снова вызывает функцию CAR, которая извлекает первый элемент из списка (y), (z). Значение этого элемента будет (y).
- И наконец, код вызывает функцию CDR, которая извлекает второй элемент из списка (y), (z). Значение этого элемента будет (z). [28]> В этом коде также используется язык программирования Lisp. Код выполняет следующие действия:
- Вызывает функцию CAR, которая извлекает первый элемент из списка (a x b y). Значение этого элемента будет (a).
- Затем, код вызывает функцию CDR, которая извлекает второй элемент из списка (a x b y). Значение этого элемента будет (x b y).
- После этого, код снова вызывает функцию CDR, которая извлекает третий элемент из списка (a x b y). Значение этого элемента будет (b y).
- Затем, код вызывает функцию CAR, которая извлекает первый элемент из списка (f z). Значение этого элемента будет (f).
- И наконец, код вызывает функцию CDR, которая извлекает второй элемент из списка (f z). Значение этого элемента будет (z). Ответ: [23]> (X Y Z) [28]> (X Y Z)