6 paradigma funcional usando haskell

12

Click here to load reader

Transcript of 6 paradigma funcional usando haskell

Page 1: 6 paradigma funcional usando haskell

Paradigmas de Linguagem de Programação

Prof. Péricles Miranda

[email protected]

Page 2: 6 paradigma funcional usando haskell

Paradigma Funcional usando Haskell

Page 3: 6 paradigma funcional usando haskell

Execução Condicional

Page 4: 6 paradigma funcional usando haskell

Execução Condicional

• Tipos de Expressões:

– Casamento de padrões;

– Expressão if-then-else;

– Expressões Guardadas;

– Expressão Case.

Page 5: 6 paradigma funcional usando haskell

Casamento de Padrões

• Características:– Constantes no lugar de nomes de variáveis representando argumentos

• A expressão só será executada se o argumento for igual a constante passada;

– Várias definições para o corpo da função

• A primeira definição que satisfizer os padrões será utilizada paradefinir o valor da chamada.

f :: Int -> Int

f 0 = 0

f 1 = 1

f 2 = 1

f n = n * fat (n-1)

f _ = 100

Page 6: 6 paradigma funcional usando haskell

Expressão if-then-else

• Características:

– Similar ao comando de C/C++/Java;

– A expressão condicional é avaliada e utilizada paraescolher entre os dois casos.

f x = if (x>0) then

1

else

-1

Page 7: 6 paradigma funcional usando haskell

Expressões Guardadas

• Características:

– Um conjunto de pares (condição, expressão);

– As condições são avaliadas sequencialmente;

– A primeira condição verdadeira determinará o valor da função.

t x | x>0 = 1

| x==0 = 0

| otherwise = -1

Page 8: 6 paradigma funcional usando haskell

Expressão Case

• Características:

– Funcionalidade semelhando ao comando “switch”:• A expressão “x” é avaliada;

• O resultado da avaliação é comparado com cada constante;

• A expressão associada a constante correta será avaliada e retornada como resultado.

t x = case x of

0 -> 1+2

1 -> 2+10

_ -> 10+2

Page 9: 6 paradigma funcional usando haskell

Recursividade

Page 10: 6 paradigma funcional usando haskell

Recursividade

• Uma função que chama a si própria;

• Geralmente a definição é dividida em

– Casos bases;

– Casos recursivos;

• Fundamental em linguagens funcionais

– Utilizada no lugar de laços.

Page 11: 6 paradigma funcional usando haskell

Vamos Praticar?

Page 12: 6 paradigma funcional usando haskell

Exercícios

Implementar:

1) Concatenar string ‘n’ vezes, onde ‘n’ e a string são passadas como parâmetros;

2) Somar valor passado como parâmetro ‘n’ vezes;

3) Retornar ‘n-enésimo’ elemento de uma PA, de acordo com constante passada comoparâmetro;

4) Fatorial;

5) Fibonacci;