SlideShare uma empresa Scribd logo
Paradigmas de Linguagens de ProgramaçãoProf. Péricles Miranda
Paradigma Funcional usando Haskell
Linguagem HaskellLinguagemFuncionalPuraImplementações:GHC:Compilador;Utilização similar à compiladores de outraslinguagens.HUGS:Interpretada, facilita a aprendizagem;O programadorforneceaointerpretadorumaexpressão e estemostra o resultadodasuaavaliação.
Tipos da Linguagem HaskellTiposPrimitivos (Similares a Java): Int: Inteiro de 32 bits+, -, *, mod,  div, ^;Integer: Inteirosemlimitação de tamanhoFloat+, -, *, /, ^; Char
ObservaçãoEm Haskell todosostiposcomeçam com letraMAIÚSCULATodososnomesiniciados com letraminúsculassãonomes de funções.
Tipo FunçãoUmafunçãocalcula um resultado a partir de um argumento:Porser umalinguagemfuncionalpura, em Haskell o resultadoproduzidoporumafunçãovariaapenasemfunçãovalores dos seusargumentos.Sintaxe:X -> YFunçãoquerecebe um valor do tipo X e produz um valor do tipoYX -> Y -> ZFunçãoquerecebeargumentos dos tipos X e Y e produz um valor do tipo Z.Chamada de função:f xf x y
Programa Haskelldois:: Int -- tipodadeclaracaodois = 2 -- valor dadeclaracaof :: Int -> Intf x = x + 1g :: Int -> Int -> Intg x y = x + 2*y
DeclaraçãoPolimórficaMotivação:Muitasfunçõesnãodependem de seustiposparaseremdefinidas.Exemplo:-- FuncaosegundovalorsegI :: Int -> Int -> IntsegI x y = ysegF :: Float -> Float -> FloatsegF x y = ysegC :: Char -> Char -> CharsegC x y = yA definiçãodamesmafunçãoparaparadiferentestiposgeramuitaredundância de código.
Declaração PolimórficaTipopolimórfico: Tipoquepode ser substituídoporqualqueroutrotipodalinguagem.Representadoporletrasminúsculas.Exemplo:seg :: a -> a -> aseg x y = yO tipopolimórfico “a” podesignificarqualquertipo real nalinguagem.
InferênciaAutomática de TiposO programador Haskell não tem de definirostipos de todas as funçõesde um programa.Se elenãoespecificar o tipo de umafunção, o compilador/interpretadortentará “adivinhar” o tipo a partirdaanálise do corpo de declaração.Exemplo:f :: Int -> Intf x = x * 2n x y = (f x) + (f y)Qual a assinaturadafunção ‘n’?
VamosPraticar?
ExercíciosImplementar operações básicas entre dois números (+, -, /, *);Implementar a média entre 4 números;Implementar programa para dizer se número é par;Implementar programa para dizer se número é ímpar;Implementar programa para encontrar o maior entre 3 números;Implementar programa para encontrar o menor entre 3 números;Para cada exercício acima, mostre o tipo das funções.
Paradigmas de Linguagens de ProgramaçãoProf. Péricles Miranda

Mais conteúdo relacionado

ODP
Algoritmos C/C++ - Aula 01
PPT
Paradigmas de Linguagens de programacao - Aula #2
PPT
E:\Plp 2009 2\Plp Aula11
PDF
Aula 1 | Introdução a C++
PPT
Curso de Linguagem C
PPT
Introdução a Linguagem C
PDF
Aula01 introducao operacoes
PDF
Aula 4 | Funções
Algoritmos C/C++ - Aula 01
Paradigmas de Linguagens de programacao - Aula #2
E:\Plp 2009 2\Plp Aula11
Aula 1 | Introdução a C++
Curso de Linguagem C
Introdução a Linguagem C
Aula01 introducao operacoes
Aula 4 | Funções

Mais procurados (18)

PPTX
Introdução à Linguagem C
PDF
Introduction to Delphi - June 2004
PDF
Introduçãso a linguagem c
PPTX
Tutorial pascal zim
PPT
Introducao logica3
PDF
Python - Introdução Básica
PDF
Lógica de programação pascal
PPTX
Programando em C++ // Estrutura Básica
PPT
Logica Algoritmo 05 Repeticao
PDF
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
PPTX
Trabalho de Paradigmas Da Linguagem De Programação - Python
PDF
Semanaupecaruaru2013 c++para iniciantes
PPSX
Programação em C
PDF
Algoritmos e Lógica de Programação
PPTX
PDF
Como Construir um Compilador cap-1
PPTX
Pug pe viii - luciano rodrigues - debugger
Introdução à Linguagem C
Introduction to Delphi - June 2004
Introduçãso a linguagem c
Tutorial pascal zim
Introducao logica3
Python - Introdução Básica
Lógica de programação pascal
Programando em C++ // Estrutura Básica
Logica Algoritmo 05 Repeticao
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Trabalho de Paradigmas Da Linguagem De Programação - Python
Semanaupecaruaru2013 c++para iniciantes
Programação em C
Algoritmos e Lógica de Programação
Como Construir um Compilador cap-1
Pug pe viii - luciano rodrigues - debugger
Anúncio

Semelhante a 5 paradigma funcional usando haskell (20)

PPT
Seminario haskell
PDF
Paradigma Funcional - Caso de Estudo Haskell
PDF
Linguagem de programação haskell
PDF
Haskell
PDF
Haskell aula2 tipos-e-classes
ODP
Paradigma funcional
PPTX
8 paradigma funcional usando haskell
DOCX
P funcional
PPTX
7 paradigma funcional usando haskell
PDF
PDF
Unidade7 1
PPTX
PDF
Programação funcional
PDF
Minicurso - funcional (CTI/2019)
PDF
01-Paradigmas.pdf
PPTX
6 paradigma funcional usando haskell
PDF
Introdução Programação Funcional
PDF
Haskell - Introdução
PDF
Haskell aula1 apresentação
Seminario haskell
Paradigma Funcional - Caso de Estudo Haskell
Linguagem de programação haskell
Haskell
Haskell aula2 tipos-e-classes
Paradigma funcional
8 paradigma funcional usando haskell
P funcional
7 paradigma funcional usando haskell
Unidade7 1
Programação funcional
Minicurso - funcional (CTI/2019)
01-Paradigmas.pdf
6 paradigma funcional usando haskell
Introdução Programação Funcional
Haskell - Introdução
Haskell aula1 apresentação
Anúncio

5 paradigma funcional usando haskell