,
, , , :
?-__(('',40)),_(_).
?-_((_,_,_)).
?-_((_,_,_)),_(_).
_/1 . , , , , assert/1 retract/1. :
_(,):-
retractall((,_)),
assert((,)).
_(,):-
retract((,)),
_ is +,
assert((,_)).
_(,):-
retract((,)).
, :
_((,,__),_):-
_(_,0),
(,,__),
_(_,1),
fail.
_(_,):-
_(_,).
, , read/1 . , repeat/0 - , :
repeat.
repeat:-repeat.
:
:-repeat,
nl,nl,write(' '),nl,
write('1. .'),nl,
write('2. .'),nl,
write('3. .'),nl,
write('0. '),nl,nl,
write(' '),
read(),
().
/1 :
(0):-!.
():-(),fail.
/1
(1):-nl,write(' :'),
nl,_(_),!.
(2):-nl,_((_,_,_),),
write(' = '),
write(),nl,!.
(3):-nl,write(' '),nl,
write(' '),read(),
write(' '),read(),
write(' '),read(__),
_((,,__)),!.
(_):-write(' !'),nl,!.