, 1, , . , 1 , predecessor:
predecessor) Parent, Child!:-parent (Parent, Child).
. , , . Prolog, ,
1. .
2. .
predecessor , . , . .
1. .
I. Prolog
2. .
, predl, pred2, pred3 pred4, 2.4.
2.4. predecessor
% pli2=Tp predecessor
pa'ren z).
predK x, Z):-parent { X, Y), predl (Y, Z).
* :
Dred2(X, Z):-
pred2 (X, Z) :- parent! X, Z).
* :
pred3< X, Z]:-
parent (x, Z).
pred3(X, Z):-pred3(X, Y),
parent (Y, Z).
■ : pred4i , Z):-
pred4{ X, Y),
parent (Y, 2).
pied4{ X, Z):-parent(X, Z).
, , . parent (. . 1.1 1). , , , predecessor, .
?- predl { torn, pat;. yes
?- pred2 (torn, pat).
yes
?- pted3(torn, pat).
yes
?- pred4(torn, pat).
Prolog . , Prolog , "More core needed" ( ) "Stack overflow" ( ).
predl ( 1 predecessor), , . 1.10 1. . 2.13 pred2, pred3 pred4. . 2.13, s , pred<3, . 2.13, , pred2 predl, .
|
|
2. Prolog
pred2(X,Z)> parant(X, Y),
pred2l V, Z).
pred2(X.Z):-l)nrcnl(X.Z).
pred2(tom, pat)
-------- 7v---------
parent! torn, v i pred2(Y", pat)
Y' = bob
pred2(bob, pat)
parent! bob, Y") pred2(Y",pat) |
parent! pat, Y'") pred2(Y",pa) -------- 77 |
prod2(jim, pat) 7v----- |
par*nt(jlm, V") prd2(Y"",pat) |
7
Y" | =ann | V | ^ | ||
prad2[ann, pat) | |||||
ft | i\ | ||||
parent) ertn. V") pred2(Y'",pat) | parent! ann. pat) | ||||
I. Prolog
pred3(X, Z):-parent{ X, Z).
pred3(X,Z):-pred3(X,Y), parent) Y, Z).