Slide 14.27: Search Slide 14.29: Search (cont.) Home |
hold_party( X ) :- birthday( X ), happy( X ). birthday( tom ). birthday( fred ). birthday( helen ). happy( mary ). happy( jane ). happy( helen ).If we now pose the query
?- hold_party( Who ).
In order to solve the above query,
birthday
, it being the first subgoal of birthday
.
This binds X
to tom
.
happy(tom)
.
This will fail, since it doesn't match the above database.
birthday
.
X
to fred
.
This then causes us to try the goal happy(fred)
.
Again this will fail to match our database.
birthday
, and bind X
to helen
, and attempt the goal happy(helen)
.
This goal matches against clause 3 of our happy
database.
hold_party
will succeed with X=helen
.