database , . .
6_1 ,
(, ³, ).
, , :
(, ³), Ƴ (, ³), (, ³, )
rson() , - . ³ , , , . , , . 6_1, .
/* 6_1 */
domains
name= string
age = integer
sex = m; f /* m f */
database
rson (name, age, sex)
predicates
male (name, age)
female (name, age)
child (name, age, sex)
clauses
male (Name, Age) :- person (Name, Age, m).
female (Name, Age) :- person (Name, Age, f).
child (Name, Age, Sex) :- person (Name, Age, Sex), Age<15.
Goal: rson (X, Y, Z), "" . :
Goal: asserta (rson (, 20, m))
Goal: asserta (rson (, 21, f))
, :
X = Y=21 Z=fX = Y=20 Z=mrson() , , , . , ' , -.
asserta(). . , . . ' , asserta(rson(, 21, f)) . , :
Goal: assertz (rson (, 9, m))
Goal: asserta (rson (, 8, f))
, person(), :
Goal: rson (Name, Age, Sex), Name = Age=8 Sex=fName = Age=21 Sex=fName = Age=20 Sex=mName = Age=9 Sex=m, , , asserta() assert z().
|
|
, . , , .. , 6_1 . , , :
Goal: male (Name, Age)
Name = Age=20
Narne = Age=9
Goal: female (Name, Age)
Name = Age=21
Name = Age=8
Goal: child (N, A, S)
N = A=8 S=f
N = A=9 S=m
- , , .
- , retract(). , :
Goal: retract (rson (, _, _))
- , . , , , :
Goal: rson (, OldAge, Sex, Person), retract (rson (, _, _)), NewAge = OldAge + 1,!, asserta (rson (, NewAge, Sex, Person)),
. , :
Goal: rson (Name, Age, Sex) Name = Age=21 Sex=mName = Age=8 Sex=fName = Age=10 Sx=msave() ' , . , :
Goal: save (person. dba)
person. dba . ', consult():
Goal: consult (person. dba).
, . .
, - , , . , , .
: ! , .