Apostila Prolog
Prolog
João Meidanis
c Copyright 2011 J. Meidanis
Conteúdo
1
4
1.1
Objetos e relações . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2
Programação em Prolog
. . . . . . . . . . . . . . . . . . . . .
5
1.3
Fatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.4
Perguntas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.5
Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.6
Conjunções
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.7
2
Introdução
Regras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
15
2.1
Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.2
Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.3
Estruturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.4
3
Sintaxe e unicação
Igualdade e unicação
18
. . . . . . . . . . . . . . . . . . . . . .
Aritmética
20
1
4
24
4.1
Estruturas como árvores
. . . . . . . . . . . . . . . . . . . . .
24
4.2
Listas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
4.3
Recursão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
4.4
Juntando listas
. . . . . . . . . . . . . . . . . . . . . . . . . .
31
4.5
5
Estruturas de dados e recursão
Acumuladores . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
Backtracking
e o corte
36
5.1
Gerando múltiplas soluções . . . . . . . . . . . . . . . . . . . .
37
5.2
O corte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
5.3
Usos do corte
. . . . . . . . . . . . . . . . . . . . . . . . . . .
39
5.3.1
Conrmando a escolha certa . . . . . . . . . . . . . . .
40
5.3.2
Combinação