Определить функцию FURTHER - Lisp

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

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

Определить функцию FURTHER, которая имеет один аргумент – список числовых значений. Функция FURTHER увеличивает положительные числа списка на единицу, а отрицательные уменьшает на единицу. Как поведет себя функция, если встретится число 0?

Решение задачи: «Определить функцию FURTHER»

textual
Листинг программы
  1. (defun further (lst)
  2.   (mapcar '(lambda (a) (if (zerop a) 0 (+ a (/ a (abs a))))) lst))
  3.  
  4. (further  
  5.     '(-3 -2 -1 0 1 2 3))
  6.  
  7. (-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

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

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

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