Recordar a função que testa se a cor é fria :
fria :: Cor -> Bool
fria Verde = True
fria Azul = True
fria x = False
{-Reparem que todas as equações têm padrões no argumento.-}
Quando a função é aplicada a um valor concerto, o GHCi procura de cima para baixo a equação cujo lado esquerdo faz match e usa essa equação para calcular o resultado
Podemos ver um padrão como “uma forma” onde um valor concreto tem que encaixar
Em : > fria Azul True
O GHCi tenta usar a 1ª equação, mas não há pattern matching (pois Verde≠Azul). Depois tenta a 2ª equação e, como os padrões concordam (pois Azul=Azul), devolve o resultado de avaliar o lado direito da equação
Em : >fria Amarelo False
O GHCi tenta usar, sem sucesso, a 1ª e depois a 2ª equação. Depois aplica, com sucesso a 3ª equação, porque os padrões concordam (pois x é uma variável e x=Amarelo).
<aside> 💡 Tudo isto faz com que a ordem em que aparecem as equações tenha influência no comportamento da função.
</aside>