Documente Academic
Documente Profesional
Documente Cultură
Limbajul Prolog
Cap. 2
Aspectul declarativ al
programelor Prolog
Aspectul declarativ al
programelor Prolog
Regulile conform crora doi termeni sunt unifiabili
2)dac unul din termeni este o variabil liber, atunci aceasta poate fi
unificat cu orice termen (simplu sau compus);
Aspectul procedural al
programelor Prolog
Program
PROLOGP
Goal
Interpretor
PROLOG
Inference engine
Indicator=yes+substituiaQ
astfelnctPQ(dac Q conine variabile)
Formule de interogare
nedeterminist:
conine una sau mai multe
variabile libere, sistemul determinnd prin
backtracking toate instanierile posibile ale
variabilelor pentru care respectiva formul este
o consecin logic a clauzelor din program.
Formule de interogare
Exemplu
Caracteristici Prolog
Exemplu
saraca(ioana). bogata(veta).
fata(ionela, ioana). fata(maria, veta).
harnica(ionela). harnica(maria).
frumoasa(ionela). frumoasa(maria).
are_zestre(X) :- fata(X, Y), bogata(Y).
place(ion,
X)
:are_zestre(X),
frumoasa(X).
-? place(ion, Cine).
Prelucrarea listelor
Prelucrarea listelor
concat([], L, L).
concat([H|T], L2, [H|T2]):- concat(T, L2, T2).
Prelucrarea listelor
count([], 0).
count([H|T],
M+1.
N):-
count(T,M),
is
Operatori
de unificare
de comparaie lexicografic
t1=t2
a+b==a+b => yes.
a+b\==b+a => yes.
de evaluare
Operatori
Relaionali (comparaia
numeric a dou expresii )
E1=:=E2
E1=\=E2
E1<E2
E1=<E2
E1>E2
E1>=E2
egalitate
neegalitate
mai mic
mai mic sau egal
mai mare
mai mare sau egal
Structuri iterative