Нахождение суммы списка, а затем деление его на определенное число Хаскелл

#haskell

Вопрос:

 addDivide n = if sum n / 5 then True else False
 

Я пытаюсь получить сумму списка, а затем посмотреть, делится ли сумма на определенное число

например, [5,5] = 10/5 = 2

Комментарии:

1. Вам просто нужно проверить, равен ли остаток при делении на 5 нулю или нет.

2. Незначительный момент: никогда не пишите if condition then True else False , это равносильно condition одиночеству. Кроме того, condition должно быть логическое значение, а не число.

Ответ №1:

Вы можете проверить, можно ли Integral a разделить число на 5, проверив, можно ли n `mod` 5 == 0 .

Таким образом, вы можете проверить это с помощью:

 addDivide :: (Foldable f, Integral a) => f a -> Bool
addDivide xs = sum xs `mod` 5 == 0