7 paradigma funcional usando haskell

13

Click here to load reader

Upload: pericles-miranda

Post on 09-Jul-2015

1.233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 7 paradigma funcional usando haskell

Paradigmas de Linguagem de Programação

Prof. Péricles Miranda

[email protected]

Page 2: 7 paradigma funcional usando haskell

Paradigma Funcional usando Haskell

Page 3: 7 paradigma funcional usando haskell

Listas e Tuplas

Page 4: 7 paradigma funcional usando haskell

Tipos em Haskell

• Haskell possui:

– Tipos Primitivos

– Tipos Compostos: Criados a partir da combinação de tipos primitivos.

• Notação: em Haskell todos os tipos iniciam com letras maiúsculas.

Page 5: 7 paradigma funcional usando haskell

Tipos Compostos

• Definem tipos a partir da composição de tipos existentes:

– Listas;

– Tuplas;

– Tipos Algébricos.

Page 6: 7 paradigma funcional usando haskell

Listas

• Definem uma seqüência de valores pertencentes a um mesmo tipo:

– [X] = lista de Valores do tipo X;

– [Int] = Tipo lista de inteiros;

– [Float] = Tipo lista de Floats;

– [Char] = Tipo lista de Caracteres;

– [[Int]] = Tipo lista de listas de Inteiros;

– [a] = Tipo lista polimórfica.

Page 7: 7 paradigma funcional usando haskell

Listas

Alguns exemplos válidos:[ ] = Lista vazia[1,2,3] = Lista formada pelos elementos 1,2 e 3[True, True, False][ [1,2,3], [3,2] , [4,3] ]

Não é permitido listas com valores de tiposdiferentes:

[1,True][‘a’, 2]

Page 8: 7 paradigma funcional usando haskell

Listas

• Funções de Listas:– head: Retorna o primeiro elemento da lista;– tail: Retorna a cauda da lista;– length: Retorna o comprimento da lista;– take n l: Retorna os “n” primeiros elementos da lista;– (h : t) : cria uma lista a partir de uma cabeça e cauda

• Em Haskell Strings são definidas como listas de caracteres:– “casa” == [‘c’, ‘a’, ‘s’, ‘a’]

Page 9: 7 paradigma funcional usando haskell

Listas

Valores do tipo lista podem ser expressos das seguintesformas:

• Listagem de elementos: [1,2,3,4], [2,4,6,3];

• Faixa de valores:– [1..10], [1,3..10];– [1,3..];

• Compreenssão:– [ x*x | x <- [1..5] ];– [ x * y | x <- [1..10] , y <- [2..10] ]

Page 10: 7 paradigma funcional usando haskell

Tuplas

Tipo formado pelo produto cartesiano de outros tipos (possivelmente diferentes)

Notação de tipos:• () = Tipo que não armazena nenhuma informação (equivalente ao

void.• (Int, Int) = Par de inteiros• (Int, Int, Int) = Trinca de inteiros• (Float, Int) = Par formado por um Float seguido por um inteiro.• ([Int], Char) = Tupla formada por uma lista de inteiros seguido por

um caracteres• [(Int,Char)] = Lista de pares inteiro X caractere

Page 11: 7 paradigma funcional usando haskell

Vamos Praticar?

Page 12: 7 paradigma funcional usando haskell

Exercícios

1) Somar elementos de uma Lista;

2) Incrementar ‘1’ a cada elemento da lista;

3) Somar elementos de tupla de dois elementos;

4) Incrementar ‘1’ a elementos de tupla de dois elementos;

5) Converter tupla em lista;

6) Converter lista em tupla;

Page 13: 7 paradigma funcional usando haskell

Paradigmas de Linguagem de Programação

Prof. Péricles Miranda

[email protected]