Programação com Listas
Introdução
 Considera-se de lista, uma estrutura de dados constituída
por uma sequencia ordenada e finita de itens (os quais
podem, inclusive ser de outras listas, ditas sublistas).
 As listas podem ser modificadas, com a inserção, exclusão e
reordenamento dos itens.
 Ex: lista homogénea para um dado tipo de base A;
A* = A1, A2, A3, A4 …An
Elementos de uma lista
Tipo
[A]; Lista de elementos do tipo A
Valores
[]; Lista vazia; [A0,…,An]; Lista não
vazia
Construtores
[] : 1 -> Lista; A * Lista A -> Lista A;
[A0,…,A20] = A0 : (A1 : (… : (An : [])
…))
++; head; last; tail; init; nul; length; !!;
repeat; break; take; drop; any; all;
elem; notElem; sum; maximun;
minimun
Operadores
Operadores de listas
 De entre vários operadores vejamos a definição dos
seguintes:
 ++, dá-nos a concatenação de duas listas.
Ex:
[1,2,3]++[4,5,6] = [1,2,3,4,5,6]
 init, dá-nos todos elementos da lista com excepção do
ultimo.
Ex:
init [1,2,3] = [1,2,]
Operadores de listas
 last, dá-nos apenas o ultimo elemento da lista.
Ex:
last [1,2,3,4] = [4]
 tail, dá-nos todos elementos da lista menos o primeiro
(consideram-se a cauda da lista).
Ex:
tail [1,2,3,4,5,6] = [2,3,4,5,6]
Operadores de listas
 head, dá-nos apenas o primeiro elemento da lista
(considera-se a cabeça da lista).
Ex: [1,2,3,4,5,6] = [1]
 drop, exclui alguns elementos da lista de acordo com o
número de elementos que forem seleccionados. Ex:
drop 2 [1,2,3,4,5,6] = [3,4,5,6]
Exercicios
1. Diga qual é a função dos operadores que se seguem:
a) Lenght; b) !!; c) break; d) take; e) repeat;
f) sum.
2. Com base nas seguintes listas resolva: [1,2,3,4]; 5,6,7,8]
a) Faça a união das listas acima;
b) Faça a remoção do primeiro elemento da primeira lista;
c) Faça a remoção de todos elementos com excepção do
primeiro na segunda lista.
Download

Programação Funcional