predmeti:ppj:negacija
Rez & negacija
Rez (!
)
preprečuje vračanje (backtracking)
primer
parent(thomas, X), parent(X, Y)
parent(thomas, X), parent(X, Y), !
parent(thomas, X), !, parent(X, Y)
!, parent(thomas, X), parent(X, Y)
v min/2
uporabimo rez, da se izognemo pogoju v drugi rekurzivni veji
skupaj naredimo count/3
Negacija
negacija kot neuspeh (negation-as-failure)
not(P) :- P, !, fail ; true.
uporabimo lahko tudi operator \+
predpostavka zaprtega sveta (closed-world assumption)
spremenljivke pod negacijo ne dobijo vrednosti
\+ female(X), parent(thomas, X)
parent(thomas, X), \+ female(X)
Naloge
union(A, B, U)
intersect(A, B, I)
diff(A, B, D)
is_superset/2
is_subset(A, B)
subset/2
powerset/2
predmeti/ppj/negacija.txt · Last modified: 2016/04/12 12:25 by timotej