% Famileprogrammet med assert/retract % (C) 2000 Henning Christiansen :- dynamic parent/2. parent(pam, bob). parent(tom, bob). parent(tom, liz). parent(bob, ann). parent(bob, pat). parent(pat, jim). % Udvidelse af prūdikat gennem % forespŋrgsel % asserta( parent(margrethe, joachim) ). % asserta( parent(frederikIX, margrethe) ). % Prūdikat med indbygget "memoisering" :- dynamic grandparent/2. grandparent(X, Z):- parent(X, Y), parent(Y, Z), asserta( grandparent( X, Z) ). % grandparent(pam, Z). % Generel "udruller": optimize(Call):- \+ (Call, fail), dif(Body, true), retract( ( Call:- Body) ). % optimize( grandparent(_, _) ).