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

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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