Я пытался вложить охранников, которые проверяют более двух условий, например:
f :: Int -> Int
f i
| bool1
| bool2 = a
| bool3 = a2
| otherwise = a3
| bool4
| bool5 = a4
| bool6 = a5
| otherwise = a6
| bool8
...
| otherwise = an
, что дает мне ошибку разбора.Правильный ли способ сделать это
, чтобы сгладить охранники с помощью && или
для реализации такой функции:
multiIf :: [Bool] -> [a] -> a
multiIf (x:xs) (l:ls) = if x then l else multiIf xs ls
multiIf _ _ = undefined
Или есть другой метод?