Определите функцию (f s), которая из списка чисел s создает новый список, меняя знак у каждого атома. Исходный список не предполагается одноуровневым - Lisp
Формулировка задачи:
Определите функцию (f s), которая из списка чисел s создает новый список, меняя знак у каждого атома. Исходный список не предполагается одноуровневым.
Решение задачи: «Определите функцию (f s), которая из списка чисел s создает новый список, меняя знак у каждого атома. Исходный список не предполагается одноуровневым»
textual
Листинг программы
(defun neg (w) (cond ((null w) nil) (t (cons (- (car w)) (neg (cdr w)))))) > (neg '(0 -1 1)) (0 1 -1)
Объяснение кода листинга программы
В коде определена функция neg, которая принимает в качестве аргумента w список чисел. Если w равен nil, то возвращается nil. Если w не равен nil, то возвращается новый список, созданный путём применения к первому элементу w операции отрицания и добавления в начало нового списка, а затем к оставшемуся списку w применяется рекурсивно функция neg. Применяя функцию neg к списку '(0 -1 1), мы получаем список (0 1 -1).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д