:
, .
(, successor/2) PROLOG 1- , .. . , PROLOG , - , successor/2 , . , (..);
successor(X, Y) :- son(X, C), successor(C, Y).
successor(X, Y) :- son(X, Y).
, PROLOG :
?- successor(elizabeth, Y).
Y = william ;
Y = henry ;
Y = severn ;
Y = charles ;
Y = andrew ;
Y = edward.
.. .
, , , . ; , -. () , , PROLOG. , successor/2:
successor(Parent, [Son|SonDescendents]) :-
son(Parent, Son),
successor(Son, SonDescendents).
- , .
successor(NonParent, []) :-
\+ son(NonParent, _).
, , ().
:
?- successor(elizabeth, S).
S = [charles, william] ;
S = [charles, henry] ;
S = [andrew] ;
S = [edward, severn] ;
false.
. PROLOG:
,
The Craft of Prolog, '
Prolog, Clocksin Mellish