Какой метод написания «охранников» является предпочтительным?

Я создал функцию, в которой могу использовать (насколько насколько я знаю) случайные выражения или охранники.

foo a b c = case a of 1 -> [...]
                      2 -> [...]
                      3 -> [...] 
                      [...]
                      otherwise -> error "..."

или

foo a b c | a == 1 = [...]
          | a == 2 = [...]
          | a == 3 = [...] 
          | [...]
          | otherwise = error "..."

Итак, вопрос: какой из этих двух (корпус или охранник) кодируется «лучше»? Оба в основном одинаковы?

13
задан Bill the Lizard 16 September 2012 в 15:39
поделиться