Функция: найти самое большое по модулю число, содержащееся в списке с подсписками - Lisp

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

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

сделать ф-цию, находящую наибольшее по модулю число, содержащееся в списке с подсписками.

Решение задачи: «Функция: найти самое большое по модулю число, содержащееся в списке с подсписками»

textual
Листинг программы
(defun task (lst)
  (apply 'max (mapcar 'abs (flatten lst))))
 
==> TASK
 
(task '(1 2 (((-6 5 2) 6) -2)))
 
==> 6

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

В коде определена функция с именем «task», которая принимает в качестве аргумента список с подсписками. Функция должна найти самое большое по модулю число, содержащееся в списке с подсписками. Функция «task» использует следующие функции и операторы:

  1. (apply 'max (mapcar 'abs (flatten lst))) — Функция apply используется для применения функции max к списку, полученному с помощью функций mapcar и flatten. — Функция mapcar применяется к списку с подсписками и возвращает новый список, содержащий только абсолютные значения элементов исходного списка. — Функция flatten используется для преобразования списка с подсписками в одномерный список. — Функция max используется для поиска максимального элемента в списке. Таким образом, в данном коде функция task находит самое большое по модулю число, содержащееся в списке с подсписками. В данном примере список содержит число -6, которое является самым большим по модулю числом в данном списке. Поэтому функция task возвращает число 6.

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

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