Определить функцию FURTHER - Lisp
Формулировка задачи:
Определить функцию FURTHER, которая имеет один аргумент – список числовых значений. Функция FURTHER увеличивает положительные числа списка на единицу, а отрицательные уменьшает на единицу.
Как поведет себя функция, если встретится число 0?
Решение задачи: «Определить функцию FURTHER»
textual
Листинг программы
(defun further (lst) (mapcar '(lambda (a) (if (zerop a) 0 (+ a (/ a (abs a))))) lst)) (further '(-3 -2 -1 0 1 2 3)) (-4 -3 -2 0 2 3 4)
Объяснение кода листинга программы
В коде определена функция FURTHER, которая принимает в качестве аргумента список чисел. Функция использует оператор MAPCAR, чтобы применить к каждому числу в списке анонимную функцию. Анонимная функция проверяет, равно ли число нулю. Если это так, то возвращается ноль. В противном случае, функция возвращает число, которое увеличивается на величину, равную абсолютному значению этого числа, делённому на его значение. В приведенном примере функция FURTHER применяется к списку чисел (-3 -2 -1 0 1 2 3). После применения функции, список чисел изменяется и становится (-4 -3 -2 0 2 3 4).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д