SlideShare una empresa de Scribd logo
1 de 9
Paradigmas de Linguagens de Programação Prof. Péricles Miranda periclesmiranda@gmail.com
Paradigma Funcional usando Haskell
Funções de Alta Ordem
Princípio de Uniformidade de Tipos Uma linguagem (na medida do possível) não deve restringir as operações que podem ser realizadas sobre valores de um tipo; 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”.
Funções de Alta Ordem 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: Funções podem ser passadas como argumentos de outras funções; Funções podem ser retornadas como resultados de outras funções; Funções podem ser construídas dinamicamente.
Tipo Função Notação: 	a −> b: Função que recebe argumentos do tipo a e retorna valores do tipo b. Valores: Expressões lambda: 	 −> x + 1 	 −>  −> x + y Aplicação de função: 	f 1 	g x y
Funções como argumento/resultado de funções t e s t e : : ( Int −> Int ) −> Int t e s t e f = f 2 func : : Int −> ( Int −> Int ) func n =  −> x + n twi c e : : ( Int −> Int ) −> ( Int −> Int ) twi c e f =  −> f ( f x )
Funções Importantes map : : ( a −> b ) −> [ a ] −> [ b ] f i l t e r : : ( a −> Bool ) −> [ a ] −> [ a ] takeWhile : : ( a −> Bool ) −> [ a ] −> [ a ] dropWhile : : ( a −> Bool ) −> [ a ] −> [ a ] f o l d l : : ( a −> b −> a ) −> a −> [ b ] −> a f o l d r : : ( a −> b −> b ) −> b −> [ a ] −> b
Vamos Praticar? ,[object Object],Adicionar ‘n’ a cada elemento da lista; Filtrar apenas elementos pares de uma lista de inteiros; Somar todos os elementos da lista; OBS: Usando-se conceito de FAA.

Más contenido relacionado

Similar a 8 paradigma funcional usando haskell

Similar a 8 paradigma funcional usando haskell (9)

Introdução ao paradigma funcional com scala
Introdução ao paradigma funcional com scalaIntrodução ao paradigma funcional com scala
Introdução ao paradigma funcional com scala
 
Intro funcoes(2)
Intro funcoes(2)Intro funcoes(2)
Intro funcoes(2)
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
 
Usando POP com Programação Funcional
Usando POP com Programação FuncionalUsando POP com Programação Funcional
Usando POP com Programação Funcional
 
Haskell - Introdução
Haskell - IntroduçãoHaskell - Introdução
Haskell - Introdução
 
Mini-Curso: gnuplot
Mini-Curso: gnuplotMini-Curso: gnuplot
Mini-Curso: gnuplot
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 

8 paradigma funcional usando haskell

  • 1. Paradigmas de Linguagens de Programação Prof. Péricles Miranda periclesmiranda@gmail.com
  • 4. Princípio de Uniformidade de Tipos Uma linguagem (na medida do possível) não deve restringir as operações que podem ser realizadas sobre valores de um tipo; 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”.
  • 5. Funções de Alta Ordem 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: Funções podem ser passadas como argumentos de outras funções; Funções podem ser retornadas como resultados de outras funções; Funções podem ser construídas dinamicamente.
  • 6. Tipo Função Notação: a −> b: Função que recebe argumentos do tipo a e retorna valores do tipo b. Valores: Expressões lambda: −> x + 1 −> −> x + y Aplicação de função: f 1 g x y
  • 7. Funções como argumento/resultado de funções t e s t e : : ( Int −> Int ) −> Int t e s t e f = f 2 func : : Int −> ( Int −> Int ) func n = −> x + n twi c e : : ( Int −> Int ) −> ( Int −> Int ) twi c e f = −> f ( f x )
  • 8. Funções Importantes map : : ( a −> b ) −> [ a ] −> [ b ] f i l t e r : : ( a −> Bool ) −> [ a ] −> [ a ] takeWhile : : ( a −> Bool ) −> [ a ] −> [ a ] dropWhile : : ( a −> Bool ) −> [ a ] −> [ a ] f o l d l : : ( a −> b −> a ) −> a −> [ b ] −> a f o l d r : : ( a −> b −> b ) −> b −> [ a ] −> b
  • 9.