Řez, návrat
Predikát řez (!) Vždy splněn Není povolen návrat přes něj
Použití řezu Problém s opakovaným výskytem sourozenců (kteří mají dva společné rodiče) sourozenec(X,Y) :- rodic(Z,X),!,rodic(Z,Y).
Predikát fail Nikdy není splněn Použití: technika „konstruktivního selhání“ muz(pavel). muz(petr). zena(petra). vypis:-muz(X),write(X),nl,fail.
Technika cut and fail Způsob definování negace Zařídím, aby člověk nebyl sám sobě sourozencem. –ruzny(X,Y):-X=Y,!,fail. –ruzny(X,Y):-true. –sourozenec(X,Y) :- rodic(Z,X),!,rodic(Z,Y),ruzny(X,Y).
Zadání Upravte predikáty z programu rodina tak, aby vypisovaly vše správně a jen jednou. Upravte predikáty z programu bludiste tak, aby Theseus nechodil v cyklu.