5. Casamento de Padrões f :: Int -> Int f 0 = 0 f 1 = 1 f 2 = 1 f n = n * fat (n-1) f _ = 100 Características: Constantes no lugar de nomes de variáveisrepresentandoargumentos A expressãosóseráexecutada se o argumento for igual a constantepassada; Váriasdefiniçõespara o corpodafunção A primeiradefiniçãoquesatisfizerospadrõesseráutilizadaparadefinir o valor dachamada.
6. Expressão if-then-else f x = if (x>0) then 1 else -1 Características: Similar aocomando de C/C++/Java; A expressãocondicional é avaliada e utilizadaparaescolher entre osdoiscasos.
7. Expressões Guardadas t x | x>0 = 1 | x==0 = 0 | otherwise = -1 Características: Um conjunto de pares (condição, expressão); As condiçõessãoavaliadassequencialmente; A primeiracondiçãoverdadeiradeterminará o valor dafunção.
8. Expressão Case t x = case x of 0 -> 1+2 1 -> 2+10 _ -> 10+2 Características: Funcionalidadesemelhandoaocomando “switch”: A expressão “x” é avaliada; O resultadodaavaliação é comparado com cadaconstante; A expressãoassociada a constantecorretaseráavaliada e retornadacomoresultado.
10. Recursividade Umafunçãoquechama a siprópria; Geralmente a definição é divididaem Casosbases; Casosrecursivos; Fundamental emlinguagensfuncionais Utilizada no lugar de laços.
12. Exercícios Implementar: Concatenar string ‘n’ vezes, onde ‘n’ e a string sãopassadascomoparâmetros; Somar valor passadocomoparâmetro ‘n’ vezes; Retornar ‘n-enésimo’ elemento de uma PA, de acordo com constantepassadacomoparâmetro; Fatorial; Fibonacci;