Получить список через вызов функций 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. Код выполняет следующие действия:

  1. Вызывает функцию LIST, которая создает список из элементов (a), (b x), (c d).
  2. Затем, код вызывает функцию CAR, которая извлекает первый элемент из списка (a), (b x), (c d). Значение этого элемента будет (a).
  3. После этого, код вызывает функцию CDR, которая извлекает второй элемент из списка (a), (b x), (c d). Значение этого элемента будет (b x).
  4. Затем, код снова вызывает функцию CAR, которая извлекает первый элемент из списка (y), (z). Значение этого элемента будет (y).
  5. И наконец, код вызывает функцию CDR, которая извлекает второй элемент из списка (y), (z). Значение этого элемента будет (z). [28]> В этом коде также используется язык программирования Lisp. Код выполняет следующие действия:
  6. Вызывает функцию CAR, которая извлекает первый элемент из списка (a x b y). Значение этого элемента будет (a).
  7. Затем, код вызывает функцию CDR, которая извлекает второй элемент из списка (a x b y). Значение этого элемента будет (x b y).
  8. После этого, код снова вызывает функцию CDR, которая извлекает третий элемент из списка (a x b y). Значение этого элемента будет (b y).
  9. Затем, код вызывает функцию CAR, которая извлекает первый элемент из списка (f z). Значение этого элемента будет (f).
  10. И наконец, код вызывает функцию CDR, которая извлекает второй элемент из списка (f z). Значение этого элемента будет (z). Ответ: [23]> (X Y Z) [28]> (X Y Z)

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы