Buscar

Introdução à Programação Funcional com Haskell

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Linguagens de Programação II
Profa. Lívia Naiara de Andrade
Introdução a Programação Funcional
Linguagem Haskell
Programação Funcional
• Estilo de programação em que o método básico 
de computação é a aplicação de funções à 
argumentos.
• Haskell é uma linguagem funcional projetada com • Haskell é uma linguagem funcional projetada com 
objetivo de ser utilizada no ensino, pesquisa e 
construção de sistemas computacionais.
• Haskell deve seu nome ao matemático Haskell B. 
Curry, conhecido por seu trabalho em lógica 
combinatória e pioneiro no desenvolvimento do 
Cálculo Lambda (Cálculo λ), inspiração aos 
projetistas da maioria das linguagens funcionais.
Exemplo
• Para somar os números inteiros de 1 a 10 
utilizando linguagem imperativa (java):
• O método da computação é baseado em 
atribuição de valores à variáveis.
Exemplo
• Em HASKELL, uma linguagem funcional, a soma 
pode ser escrita como:
• O método da computação é baseado em aplicação 
de argumentos à funções.
HASKELL
• Hugs: Compilador HASKELL
• Hugs é uma implementação da linguagem Haskell
que pode ser executada em PCs e sistemas Unix, que pode ser executada em PCs e sistemas Unix, 
incluindo Linux.
• Pode ser obtido gratuitamente em 
www.haskell.org/hugs
Como entrar no HUGS???
Expressões em HASKELL
Funções
Uma função pode ser representada como no 
desenho abaixo:
Entradas
• A função calcula um valor (valor de saída) que 
depende dos valores de entrada.
f
Entradas
Saídas
Funções
Funções em Haskell são normalmente definidas pelo 
uso de equações. Por exemplo, a função soma pode 
ser escrita:
+
12
34 46
Funções
Em Haskell existem várias funções pré-definidas que 
podem ser usadas para a construção de expressões.
Veja um exemplo:
• A função reverse inverte 
a ordem dos caracteres 
em uma string.
• Existirem várias funções pré-definidas, porém a 
idéia da programação funcional é que você defina 
as suas próprias funções!!!
Funções
• As suas funções devem ser definidas em scripts. 
• Em scripts da linguagem Haskell existem • Em scripts da linguagem Haskell existem 
comentários que facilitam uma leitura posterior. 
Tudo o que for escrito depois de dois travessões 
(--) é considerado comentário e não é 
interpretado. 
• Segue um exemplo de script:
Funções
Escrevendo e testando a função incrementar:
Funções
Funções
A primeira linha de 
uma definição é a 
declaração de tipo. 
A notação ‘::’ pode 
ser lida como ‘possui 
tipo’. 
A linha seguinte A linha seguinte 
atribui o valor 17 
para idade.
Funções
Aqui o tipo Booleano
é introduzido.
maiorDeIdade = False
Em Haskell uma 
definição pode usar 
qualquer outra qualquer outra 
definição do mesmo 
script.
Funções
Encontra-se também 
definições de 
funções. 
A função quadrado 
vai do tipo Int para o 
tipo Int. Através de 
seu argumento, seu argumento, 
calcula uma resposta 
utilizando uma 
equação (x * x). 
Funções Função mini: devolve 
o menor valor entre 
os dois argumentos.
Para obter a resposta, 
testam-se os valores 
para decidir qual é o
menor. Para isso são 
usados guards
(expressões (expressões 
booleanas iniciadas 
por uma | ).
Outros exemplos de Funções
Algumas funções para calcular área de figuras podem 
ser definidas:
Outros exemplos de Funções
Função para calcular a média entre três números:
?
Outros exemplos de Funções
Função para calcular a média entre três números:
Ambiente Hugs
Alguns comandos úteis:
Exercícios para entregar
1. Escreva uma função para calcular o dobro de um 
número.
2 Escreva uma função para quadruplicar um número, 
Enviar pelo moodle até dia 24-05. Todas as funções devem estar 
no mesmo arquivo, assim nomeado: nome_aluno.hs
2 Escreva uma função para quadruplicar um número, 
usando a função definida no item anterior.
3 Defina uma função para calcular a distância entre dois 
pontos (num plano).
4 Dadas as medidas dos catetos de um triângulo retângulo, 
retornar o valor de sua hipotenusa.
5 Dados três valores, retornar o menor deles.

Continue navegando

Outros materiais