. Database. Database Predicates. Predicates.
, . , , .
asseta, assertz, retractall, consult, save . (. " "). . SOURSE, HEAP. , . , .
, . : , , .
22. .
Domains
list=integer*
Database db1 % db1
fact1(integer,string,list)
Database db2 % db2
fact2(integer,string)
Clauses
fact1(1,f1,[1,2,3]).
fact1(2,f2,[1,3]).
fact1(3,f3,[2,2,1]).
fact2(1,],"one").
fact2(1,"one one"]).
fact2(2,"two").
:
Goal fact1(X,Y,Z)
:
X=1 Y=f1 Z=[1,2,3])
X=2 Y=f2 Z=[1,3]).
X=3 Y=f3 Z=[2,2,1]).
3 solutions
Goal rettactall(fact1(X,Y,[_,2|Z])) %
X=1 Y=f1 Z=3
X=3 Y=f3 Z=1
Goal retractall(fact1(X,Y,Z))
X=2 Y=f2 z=[1,3]
Goal retractall(db2) %
Yes.
23. . - , , ; , .
. . , . . , , .
, .. . [1].
. , :
|
|
animal_is(""): it_is(""),
it_is(""),
positive(""," "),
positive("", " ").
animal_is(): it_is(),
it_is(),
positive(, ),
positive(, ).
animal_is(""): it_is(""),
positive(""," ").
animal_is(""): it_is(""),
negative("", ""),
positive("", ""),
positive("", "- ").
, .
, :
it_is(""):
positive(""," "),
positive("", ""),
positive("", ", ").
it_is(""):
it_is(""),
positive("",""),
positive("æóåò", "æâà÷êó").
Goal animal_is(X),!,
write(" ",X).
, .. , animal_is.
, , . , . positive negative, xpositive xnegative. , .
-, . .
database
xpositive(symbol, symbol)
xnegative(symbol, symbol)
Clauses
positive(X, Y): %
xpositive(X, Y),!. %
positive(X,Y):xnegative(X,Y),!,fail. %
positive(X, Y): % ,
not(xnegative(X, Y)), %
ask(X, Y, yes),!.
ask(X, Y, yes):
write(X, " ", Y, '\n'),
readchar(Reply),
ans_pos(X, Y, Reply).
ans_pos(X,Y,'y'): assertz(xpositive(X,Y)).
ans_pos(X,Y,'n'): assertz(xnegative(X,Y)),!, fail.
, , , positive negative. ( positive, . negative .)
positive , . , . , , , , animal_is. , , .
|
|
, , , , :
positive("","").
, "" . , , "y" "n" , :
xpositive(verb,,attribute)
xnegative(verb,attribute).
, , . , .