3. Listas
I Estrutura de dados básica em prolog.
I Uma lista é uma seqüência de elementos que tenham alguma
relação em comum.
I Os elementos de uma lista são colocados entre colchetes.
3/9
7. Construindo um programa declarativo
Vamos ver alguns passos que ajudam na construção de programas
declarativos.
1. Defina perfeitamente as entradas e saı́das. O que se tem e o
que se busca.
Ex. construir um programa para deletar um elemento de uma
lista.
I Entrada: Uma lista qualquer tipo :[1,2,3,4,5,6], Um valor a ser
retirado tipo : 4
I saı́da: Uma lista sem o elemento a ser retirado : [1,2,3,5,6]
2. Pense de forma axiomática para criar as regras de
transformação e de forma procedural para avaliá-las.
I Se o elemento for retirado da cabeça da lista e também do
resto da lista então o resultado será a lista sem o elemento.
Escrevemos então a primeira regra
delete([X | Resto], X, , Y ) ← delete(Resto, X, Y )
I Trata-se portanto de uma função recursiva.
7/9
8. Construindo um programa declarativo
2 Continuando
I Definindo mais regras genéricas. Se o elemento não for a
cabeça da regra.
delete([X | Xs], Z, [X | Ys]) ← X 6= Z, delete(Xs, Z, Ys)
I Definina um ou mais casos base.
delete([], X, []).
3 Eventualmente construa uma árvore de prova.
4 Faça testes.
5 Pratique.
8/9