Universidade Federal do Espírito Santo Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres [email protected] CT VII - Sala 34 Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Co-Autoria: Clebson Oliveira Introdução Caracteriza-se por agregar quantidades variáveis de elementos desde que todos eles sejam de um mesmo tipo. Exemplos Lista de números pares; Lista dos livros lidos por uma pessoa; Lista dos amigos que aniversariam em um dado mês; Lista dos presidentes corruptos; Lista dos vereadores decentes; Lista das disciplinas que já cursei; Lista dos lugares que visitei; Lista dos números feios; Lista dos números primos; Lista das posições para as quais um cavalo pode se deslocar; Lista das palavras de um texto; Lista dos erros provocados pelo Windows; Definição Uma lista é uma seqüência de zero ou mais elementos de um mesmo tipo. Entende-se por seqüência uma quantidade qualquer de itens dispostos linearmente. Podemos representar uma lista pela enumeração dos seus elementos, separados por vírgulas e cercados por colchetes: [ e1, e2, .., en] Exemplos 1. [ ] 2. [1,3,5,7,9] 3. ['a', 'e', 'i', 'o', 'u'] 4. [(22,04,1500), (07,09,1822),(31,03,1964)] 5. [[1,2,5,10], [1,11], [1,2,3,4,6,12], [1,13], [1,2,7,14], [1,3,5,15]] Operações sobre listas: primitivas importantes length fornece o tamanho da lista Sintaxe: length <lista> Exemplo: > length [1,4,6,7] 4 Operações sobre listas: primitivas importantes Indexação fornece o valor localizado na posição informada Sintaxe: <lista> !! <indice> Exemplo: > [1,4,6,7] !! 0 1 Operações sobre listas: primitivas importantes concat: fornece uma nova lista obtida pela concatenação dos elementos de uma lista de listas Sintaxe: concat <lista de listas> Exemplo: > concat [[1.5,1,3],[3.7],[2,4.5,8]] [1.5,1,3,3.7,2,4.5,8] Operações sobre listas: primitivas importantes ++: é um operador de lista que fornece uma nova lista obtida a partir da concatenação das listas dadas como argumentos Sintaxe: <lista> ++ <lista> Exemplo: > [1,4,6,7] ++ [2,3,4] [1,4,6,7,2,3,4] Operações sobre listas: primitivas importantes : (construtor de listas) insere um elemento em uma lista Sintaxe: <elemento> : <lista> Exemplo: > 0: [1,4,6,7] [0,1,4,6,7] Operações sobre listas: primitivas importantes head fornece o primeiro elemento de uma lista. Só pode ser aplicado em listas não nulas Sintaxe: head <lista> Exemplo: > head [1,4,6,7] 1 Operações sobre listas: primitivas importantes tail fornece a lista sem o seu primeiro elemento Sintaxe: tail <lista> Exemplo: > tail [1,4,6,7] [4,6,7] Operações sobre listas: primitivas importantes last fornece o último elemento de uma lista. Só pode ser aplicado em listas não nulas Sintaxe: last <lista> Exemplo: > last [1,4,6,7] 7 Operações sobre listas: primitivas importantes init fornece a lista sem o seu último elemento Sintaxe: init <lista> Exemplo: > init [1,4,6,7] [1,4,6] Operações sobre listas: primitivas importantes null Fornece o valor booleano True se a lista dada como entrada for nula e False, caso contrário Sintaxe: null <lista> Exemplo: > null [1,4,6,7] False Operações sobre listas: primitivas importantes take Fornece uma lista com os k primeiros valores requisitados da lista original Sintaxe: take <valor inteiro positivo> <lista> Exemplo: > take 3 [1,4,6,7] [1,4,6] Operações sobre listas: primitivas importantes drop Fornece uma lista com os valores restantes da lista original, retirados os k primeiros Sintaxe: drop <valor inteiro positivo> <lista> Exemplo: > drop 3 [1,4,6,7] [7]