Ive создал функцию, в которой я могу использовать (насколько мне известно) выражения case или guard.
foo a b c = case a of 1 -> [...]
2 -> [...]
3 -> [...]
[...]
otherwise -> error "..."
или
foo a b c | a == 1 = [...]
| a == 2 = [...]
| a == 3 = [...]
| [...]
| otherwise = error "..."
Итак, возникает вопрос: какой из этих 2 (случай или страж) является "лучшим" кодированием? Оба в основном одинаковы?