Pattern matching em Haskell
Haskell permite definir funções por casos usando padrões:
fatorial 0 = 1
fatorial n = n * fatorial (n - 1)
Aqui, fatorial
é definida recursivamente: se o argumento for 0
, retorna 1
; caso contrário, calcula n * fatorial(n-1)
.