Помогите определить функцию CONS3 от трех аргументов-атомов - Lisp
Формулировка задачи:
Помогите определить функцию CONS3 от трех аргументов-атомов, которая строит список из первого и последнего и делает его хвостом второго.
Решение задачи: «Помогите определить функцию CONS3 от трех аргументов-атомов»
textual
Листинг программы
(defun graftage (a b c) (cons a (cons (cons b (cons a (cons c nil))) (cons c nil)))) > (graftage 10 100 1000) (10 (100 10 1000) 1000)
Объяснение кода листинга программы
В этом коде определена функция с именем graftage, которая принимает три аргумента a, b и c. Она возвращает список, построенный с использованием функции cons, которая добавляет новый элемент в начало списка.
В данном случае, функция graftage создает список, в котором первый элемент - это a, затем следует b, а затем c.
Если мы применим функцию graftage к аргументам 10, 100 и 1000, то получим следующий результат:
- Создается новый список с
aв качестве первого элемента. - К этому списку добавляется новый список, содержащий
bиa. - К полученному списку добавляется новый список, содержащий
cиa. - Наконец, к полученному списку добавляется
c. Таким образом, результатом выполнения функцииgraftageс аргументами 10, 100 и 1000 будет список(10 (100 10 1000) 1000).