Paradigmas de Linguagens de Programação<br />Prof. Péricles Miranda<br />periclesmiranda@gmail.com<br />
Paradigma Funcional usando Haskell<br />
Funções de Alta Ordem<br />
Princípio de Uniformidade de Tipos<br />Uma linguagem (na medida do possível) não deve restringir as operações que podem s...
Funções de Alta Ordem<br />Linguagens funcionais possuem o conceito de funções de alta ordem pois as funções são tipos que...
Tipo Função<br />Notação:<br />	a −> b: Função que recebe argumentos do tipo a e retorna valores do tipo b.<br />Valores: ...
Funções como argumento/resultado de funções<br />t e s t e : : ( Int −> Int ) −> Int<br />t e s t e f = f 2<br />func : : ...
Funções Importantes<br />map : : ( a −> b ) −> [ a ] −> [ b ]<br />f i l t e r : : ( a −> Bool ) −> [ a ] −> [ a ]<br />ta...
Vamos Praticar?<br /><ul><li>A função fn(x);</li></ul>Adicionar ‘n’ a cada elemento da lista;<br />Filtrar apenas elemento...
Upcoming SlideShare
Loading in …5
×

8 paradigma funcional usando haskell

1,155 views
1,042 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,155
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

8 paradigma funcional usando haskell

  1. 1. Paradigmas de Linguagens de Programação<br />Prof. Péricles Miranda<br />periclesmiranda@gmail.com<br />
  2. 2. Paradigma Funcional usando Haskell<br />
  3. 3. Funções de Alta Ordem<br />
  4. 4. Princípio de Uniformidade de Tipos<br />Uma linguagem (na medida do possível) não deve restringir as operações que podem ser realizadas sobre valores de um tipo;<br />Se em uma linguagem certos tipos não possuem toda a flexibilidade oferecida a outros tipos, dizem que estes tipos são tipos de “Segunda Ordem”.<br />
  5. 5. Funções de Alta Ordem<br />Linguagens funcionais possuem o conceito de funções de alta ordem pois as funções são tipos que podem ser manipulados como quaisquer outros tipos da linguagem:<br />Funções podem ser passadas como argumentos de outras funções;<br />Funções podem ser retornadas como resultados de outras funções;<br />Funções podem ser construídas dinamicamente.<br />
  6. 6. Tipo Função<br />Notação:<br /> a −> b: Função que recebe argumentos do tipo a e retorna valores do tipo b.<br />Valores: Expressões lambda:<br /> x −> x + 1<br /> y −> x −> x + y<br />Aplicação de função:<br /> f 1<br /> g x y<br />
  7. 7. Funções como argumento/resultado de funções<br />t e s t e : : ( Int −> Int ) −> Int<br />t e s t e f = f 2<br />func : : Int −> ( Int −> Int )<br />func n = x −> x + n<br />twi c e : : ( Int −> Int ) −> ( Int −> Int )<br />twi c e f = x −> f ( f x )<br />
  8. 8. Funções Importantes<br />map : : ( a −> b ) −> [ a ] −> [ b ]<br />f i l t e r : : ( a −> Bool ) −> [ a ] −> [ a ]<br />takeWhile : : ( a −> Bool ) −> [ a ] −> [ a ]<br />dropWhile : : ( a −> Bool ) −> [ a ] −> [ a ]<br />f o l d l : : ( a −> b −> a ) −> a −> [ b ] −> a<br />f o l d r : : ( a −> b −> b ) −> b −> [ a ] −> b<br />
  9. 9. Vamos Praticar?<br /><ul><li>A função fn(x);</li></ul>Adicionar ‘n’ a cada elemento da lista;<br />Filtrar apenas elementos pares de uma lista de inteiros;<br />Somar todos os elementos da lista;<br />OBS: Usando-se conceito de FAA.<br />

×