Определить функцию 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).

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


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

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

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