Определите функцию (f s), которая из списка чисел s создает новый список, меняя знак у каждого атома. Исходный список не предполагается одноуровневым - Lisp

Узнай цену своей работы

Формулировка задачи:

Определите функцию (f s), которая из списка чисел s создает новый список, меняя знак у каждого атома. Исходный список не предполагается одноуровневым.

Решение задачи: «Определите функцию (f s), которая из списка чисел s создает новый список, меняя знак у каждого атома. Исходный список не предполагается одноуровневым»

textual
Листинг программы
  1. (defun neg (w)
  2.   (cond ((null w) nil)
  3.         (t (cons (- (car w)) (neg (cdr w))))))
  4.  
  5. > (neg '(0 -1 1))
  6. (0 1 -1)

Объяснение кода листинга программы

В коде определена функция neg, которая принимает в качестве аргумента w список чисел. Если w равен nil, то возвращается nil. Если w не равен nil, то возвращается новый список, созданный путём применения к первому элементу w операции отрицания и добавления в начало нового списка, а затем к оставшемуся списку w применяется рекурсивно функция neg. Применяя функцию neg к списку '(0 -1 1), мы получаем список (0 1 -1).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

9   голосов , оценка 3.556 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы