Introdução
Introdução ao Prolog
o O Prolog permite-nos descrever um
“problema” em termos de factos e
regras.
Noel de Jesus Mendonça Lopes
Factos
Factos simples
o Os factos consistem num item
particular ou numa relação entre
itens.
o Factos
o Os factos começam sempre por uma
letra pequena.
o Exemplo de factos simples:
n Simples;
n Com argumentos (relações).
n nevoeiro.
n sol.
n monstro_morto.
1
Factos com argumentos
Variáveis e Unificação
o Factos mais complexos, consistem
numa relação e nos itens a que se
refere (argumentos). Uma facto pode
ter um número de argumentos
arbitrário.
o relação(<arg1>, ..., <argN>).
o Exemplo :
o come(fernando, peras).
?- come(fernando, Quê).
o Unificação é o processo que efectua a
correspondência entre objectos e
variáveis.
n gosta(joão, maria).
Regras
Regras – Exemplos
o As regras permitem-nos fazer
afirmações condicionais acerca do
mundo.
o Exemplo:
o pai(P, F) :- umdospais (P, F), homem(P).
o mãe(M, F) :- umdospais (M, F), mulher(M).
o irmão(X, Y) :- umdospais (P, X),
umdospais(P, Y), not(X=Y).
o tio(T, X) :- umdospais (P, X), irmão(P, T).
o primo(X, Y) :- tio(T, X), umdospais (T, Y).
o é_pai(X) :- pai(X, _).
n mortal(X) :- humano(X).
humano(socrates).
?- mortal(socrates).
?- mortal(Quem).
2
Regras - Clausulas
Backtracking
o divertido(X) :- vermelho(X), carro(X).
divertido(X) :- azul(X), mota(X).
divertido(gelado).
o Quando uma variável aparece numa
clausula ela diz apenas respeito a
essa clausula.
o
o
o
o
o
o
o
o
faz_festa (X):- aniversário(X), contente(X).
aniversário(antónio).
aniversário(fernando).
aniversário(helena).
contente(maria).
contente(joana).
contente(helena).
?- faz_festa(Quem).
Recursividade
o antepassado(X, Y):- umdospais(X, Y).
antepassado(X, Y):- umdospais(X, Z),
antepassado(Z, Y).
umdospais(antónio, joão).
umdospais(joão, laura).
umdospais(laura, ana).
umdospais(ana, miguel).
umdospais(miguel, maria).
?- antepassado(antónio, maria).
3
Download

Introdução ao Prolog