Я пытался решить проблему, которая требовала максимальное значение списка после сопоставления функцией. Список находится диапазон от A до B, где A> B или B> A. Поскольку Haskell также может определить уменьшение списков, которые я думал, что мне не нужно проверять, если A> B и не было необходимости переворачивать границы к B..a. Функция выглядит несколько такова:
f a b = maximum . map aFunction $ [a..b]
, но если список уменьшается I.e. A> B, то Haskell дает мне исключение:
Prelude.maximum: empty list
Так что по какой-то причине уменьшается список рук в пустом списке к максимальной функции. Почему?
Я знаю, что максимум
определяется в терминах Foldl1 Max
и что Foldl1
нужен не пустой список, но я не Знайте, почему список, как [10..1]
пустой при передаче в Foldl1
.