Paradigmas de Linguagem de ProgramaçãoProf. Péricles Mirandapericlesmiranda@gmail.com
Paradigma Funcional usando Haskell
Execução Condicional
Execução CondicionalTiposde Expressões:Casamento de padrões;Expressãoif-then-else;ExpressõesGuardadas;ExpressãoCase.
Casamento de Padrõesf :: Int -> Intf 0 = 0f 1 = 1f 2 = 1f n = n * fat (n-1)f _ = 100Características:Constantes no lugar de nomes de variáveisrepresentandoargumentosA expressãosóseráexecutada se o argumento for igual a constantepassada;Váriasdefiniçõespara o corpodafunçãoA primeiradefiniçãoquesatisfizerospadrõesseráutilizadaparadefinir o valor dachamada.
Expressão if-then-elsef x = if (x>0) then        1      else        -1Características:Similar aocomando de C/C++/Java;A expressãocondicional é avaliada e utilizadaparaescolher entre osdoiscasos.
Expressões Guardadast x | x>0  = 1    | x==0 = 0    | otherwise  = -1Características:Um conjunto de pares (condição, expressão);As condiçõessãoavaliadassequencialmente;A primeiracondiçãoverdadeiradeterminará o valor dafunção.
Expressão Caset x = case x of	0 -> 1+2      	1 -> 2+10       _ -> 10+2Características:Funcionalidadesemelhandoaocomando “switch”:A expressão “x” é avaliada;O resultadodaavaliação é comparado com cadaconstante;A expressãoassociada a constantecorretaseráavaliada e retornadacomoresultado.
Recursividade
RecursividadeUmafunçãoquechama a siprópria;Geralmente a definição é divididaemCasosbases;Casosrecursivos;Fundamental emlinguagensfuncionaisUtilizada no lugar de laços.
VamosPraticar?
ExercíciosImplementar: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;

6 paradigma funcional usando haskell

  • 1.
    Paradigmas de Linguagemde ProgramaçãoProf. Péricles Mirandapericlesmiranda@gmail.com
  • 2.
  • 3.
  • 4.
    Execução CondicionalTiposde Expressões:Casamentode padrões;Expressãoif-then-else;ExpressõesGuardadas;ExpressãoCase.
  • 5.
    Casamento de Padrõesf:: Int -> Intf 0 = 0f 1 = 1f 2 = 1f n = n * fat (n-1)f _ = 100Características:Constantes no lugar de nomes de variáveisrepresentandoargumentosA expressãosóseráexecutada se o argumento for igual a constantepassada;Váriasdefiniçõespara o corpodafunçãoA primeiradefiniçãoquesatisfizerospadrõesseráutilizadaparadefinir o valor dachamada.
  • 6.
    Expressão if-then-elsef x= if (x>0) then 1 else -1Características:Similar aocomando de C/C++/Java;A expressãocondicional é avaliada e utilizadaparaescolher entre osdoiscasos.
  • 7.
    Expressões Guardadast x| x>0 = 1 | x==0 = 0 | otherwise = -1Características:Um conjunto de pares (condição, expressão);As condiçõessãoavaliadassequencialmente;A primeiracondiçãoverdadeiradeterminará o valor dafunção.
  • 8.
    Expressão Caset x= case x of 0 -> 1+2 1 -> 2+10 _ -> 10+2Características:Funcionalidadesemelhandoaocomando “switch”:A expressão “x” é avaliada;O resultadodaavaliação é comparado com cadaconstante;A expressãoassociada a constantecorretaseráavaliada e retornadacomoresultado.
  • 9.
  • 10.
    RecursividadeUmafunçãoquechama a siprópria;Geralmentea definição é divididaemCasosbases;Casosrecursivos;Fundamental emlinguagensfuncionaisUtilizada no lugar de laços.
  • 11.
  • 12.
    ExercíciosImplementar: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;