Создать новый список - Lisp

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

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

Задан список чисел. Создать новый список, в котором каждое значение поделено на максимальное значение исходного списка.Помогите, пожалуйста

Решение задачи: «Создать новый список»

textual
Листинг программы
  1. (defn del-max [l]
  2.     (let [mx (reduce max l)]
  3.         (map #(if (zero? mx) 'infinity (/ % mx)) l)))
  4.  
  5. (del-max [0 -1 -2 -3 -4 -5]) ==> (infinity infinity infinity infinity infinity infinity)
  6. (del-max [-1 -2 -3 -4 -5]) ==> (1 2 3 4 5)
  7. (del-max [1 2 3 4 5]) ==> (1/5 2/5 3/5 4/5 1)

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

В данном коде определён новый функционал для списка, который выводит на экран максимальное значение из списка. Если в списке нет максимального элемента или список пустой, то вернёт 'infinity. Если есть максимальный элемент, то возвращает новый список, в котором каждый элемент списка делится на максимальное значение. Когда мы применяем функцию del-max к списку [0 -1 -2 -3 -4 -5], то получаем '(infinity infinity infinity infinity infinity infinity). Это происходит потому, что 0 - это максимальное значение в данном списке. И когда мы делим каждый элемент списка на максимальное значение, то получаем infinity. Когда мы применяем функцию del-max к списку [-1 -2 -3 -4 -5], то получаем [1 2 3 4 5]. Это происходит потому, что -1, -2, -3, -4 и -5 не являются максимальными значениями в данном списке. И когда мы делим каждый элемент списка на максимальное значение, то получаем натуральное число. Когда мы применяем функцию del-max к списку [1 2 3 4 5], то получаем [1/5 2/5 3/5 4/5 1]. Это происходит потому, что 5 - это максимальное значение в данном списке. И когда мы делим каждый элемент списка на максимальное значение, то получаем результат, который меньше 1.

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


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

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

7   голосов , оценка 4.429 из 5

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

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

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