Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Programação Funcional - Exercícios Resolvidos - aula 2, Exercícios de Informática

Coleção completa de exercícios resolvidos em haskell

Tipologia: Exercícios

2013

Compartilhado em 13/09/2013

bruno-franco-oliveira-9
bruno-franco-oliveira-9 🇧🇷

4

(10)

63 documentos

1 / 15

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Programac¸ ˜
ao Funcional
Introduc¸ ˜
ao `
a Programac¸ ˜
ao Funcional
Linguagem Haskell
Maria Adriana Vidigal de Lima
Faculdade de Computac¸ ˜
ao - UFU
Agosto - 2009
Maria Adriana Vidigal de Lima Introduc¸ ˜
ao `
a Programac¸ ˜
ao Funcional
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Pré-visualização parcial do texto

Baixe Programação Funcional - Exercícios Resolvidos - aula 2 e outras Exercícios em PDF para Informática, somente na Docsity!

Programac¸ ˜ao Funcional

Introduc¸ ˜ao `a Programac¸ ˜ao Funcional

Linguagem Haskell

Maria Adriana Vidigal de Lima

Faculdade de Computac¸ ˜ao - UFU

Agosto - 2009

Programac¸ ˜ao Funcional

(^1) Programac¸ ˜ao Funcional

Linguagem Haskell

Func¸ ˜oes

Programac¸ ˜ao Funcional Func¸ ˜oes

Exemplo

Para somar os n ´umeros inteiros de 1 a 10 podemos escrever

em linguagem Java:

total = 0;

for (i = 1; i <= 10; i++)

total = total + i;

O m ´etodo da computac¸ ˜ao ´e baseado em atribuic¸ ˜ao de

valores `a vari ´aveis

Programac¸ ˜ao Funcional Func¸ ˜oes

Exemplo

A soma dos n ´umeros inteiros de 1 a 10 pode ser escrita em

Haskell como:

sum [1..10]

O m ´etodo da computac¸ ˜ao ´e baseado em aplicac¸ ˜ao de

argumentos `a func¸ ˜oes

Programac¸ ˜ao Funcional Func¸ ˜oes

Express ˜oes em Haskell

Hugs ´e uma implementac¸ ˜ao da

linguagem Haskell que pode ser

executada em PCs e sistemas

Unix, incluindo Linux.

Pode ser obtido gratuitamente

em www.haskell.org/hugs

Programac¸ ˜ao Funcional Func¸ ˜oes

Func¸ ˜oes

Uma func¸ ˜ao pode ser representada como no desenho abaixo:

A func¸ ˜ao calcula um valor (o valor de sa´ıda) que depende dos

valores de entrada.

Programac¸ ˜ao Funcional Func¸ ˜oes

Func¸ ˜oes

A func¸ ˜ao incrementar pode ser escrita e testada:

inc n = n + 1

Programac¸ ˜ao Funcional Func¸ ˜oes

Outros exemplos de Func¸ ˜oes

Algumas func¸ ˜oes para calcular a ´area de figuras podem ser

definidas:

areaTriangulo b h = (b * h) / 2

areaRetangulo b h = b * h

areaCirculo r = pi * r * r

areaTrapezio a b h = (a + b) * h / 2

Programac¸ ˜ao Funcional Func¸ ˜oes

Outros exemplos de Func¸ ˜oes

Func¸ ˜ao para calcular a m ´edia entre tr ˆes n ´umeros:

media v1 v2 v3 = (v1 + v2 + v3) / 3

> media 2 5 7

> media 1.4 2.6 4.

> media 1.4 4 5.

> media 1 4

ERROR - Cannot find "show" function for:

*** Expression : media 1 4

*** Of type : Double -> Double

Programac¸ ˜ao Funcional Func¸ ˜oes

Ambiente do Hugs

Alguns comandos ´uteis no Hugs:

Comando Significado

:load “arq.ext” carregar o arquivo

:reload recarregar o arquivo atual

:edit “arq.ext” editar o arquivo pedido

:edit editar o arquivo atual

:type expr mostrar o tipo de uma express ˜ao

:? mostrar todos os comandos

:quit encerrar o Hugs