Baixe o app para aproveitar ainda mais
Prévia do material em texto
Mais sobre listas Renata Carvalho UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Outras Funções • Comprimento length :: [t] -‐> Int length [] = 0 length (a:as) = 1 + length as • Concatenação (++) :: [t] -‐> [t] -‐> [t] [] ++ y = y (x:xs) ++ y = x : (xs ++ y) • Essas funções são polimórficas Outras Funções Exemplo: Biblioteca Compreensão de Listas Exercícios UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Exemplo: Biblioteca type Pessoa = String type Livro = String type BancoDeDados = [(Pessoa, Livro)] Outras Funções Exemplo: Biblioteca Compreensão de Listas Exercícios UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Exemplo: Biblioteca baseExemplo :: BancoDeDados baseExemplo = [(“Renata”, “Harry Po_er”), (“Renata”, “Paradigmas de Ling. Programação”), (“Marcio”, “A Game of Thrones”), (“Robson”, “O Senhor dos Anéis”), (“Madeiro”, “Guinness World Records”)] -‐-‐ livros emprestados Outras Funções Exemplo: Biblioteca Compreensão de Listas Exercícios UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Exemplo: Biblioteca • Funções livros :: BancoDeDados -‐> Pessoa -‐> [Livro] empresdmos :: BancoDeDados -‐> Livro -‐> [Pessoa] emprestado :: BancoDeDados -‐> Livro -‐> Bool qtdEmpresdmos :: BancoDeDados -‐> Pessoa -‐> Int emprestar :: BancoDeDados -‐> Pessoa -‐> Livro -‐> BancoDeDados devolver :: BancoDeDados -‐> Pessoa -‐> Livro -‐> BancoDeDados Outras Funções Exemplo: Biblioteca Compreensão de Listas Exercícios UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Compreensões de Listas • Usadas para definir listas em função de outras listas doubleList xs = [2*a | a <-‐ xs] doubleIfEven xs = [2*a | a <-‐ xs, isEven a] sumPairs :: [(Int, Int)] -‐> [Int] sumPairs lp = [x + y | (x, y) <-‐ lp] digits :: String -‐> String digits st = [ch | ch <-‐ st, isDigit ch] Outras Funções Exemplo: Biblioteca Compreensão de Listas Exercícios UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Exercícios • Redefina as seguintes funções udlizando compreensão de listas livros :: BancoDeDados -‐> Pessoa -‐> [Livro] empresdmos :: BancoDeDados -‐> Livro -‐> [Pessoa] devolver :: BancoDeDados -‐> Pessoa -‐> Livro -‐> BancoDeDados Outras Funções Exemplo: Biblioteca Compreensão de Listas Exercícios
Compartilhar