Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_ruleruntimeg:oops [2008/05/19 22:28] miw utworzono |
pl:miw:miw08_ruleruntimeg:oops [2019/06/27 15:50] (aktualna) |
| oops.pl |
<code prolog> | <code prolog> |
% OOPS2 - A toy production system interpreter. It uses a forward chaining, | % OOPS2 - A toy production system interpreter. It uses a forward chaining, |
| |
% fixed for SWI Prolog by GJN 12.2005 | % fixed for SWI Prolog by GJN 12.2005 |
| %%%%%%%%% To start program write main. or uncomment the last line in this file %%%%%%%%%%%%%%%%%%%%% |
| :- write('********To start program write main.**********'). |
| |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
info(X):- | info(X):- |
jpl_datums_to_array(X,Q), | jpl_datums_to_array(X,Q), |
| |
readF(File):- | readF(File):- |
jpl_new('miw2.PlFileChooser',[],F), | jpl_new('miw2.PlFileChooser',[],F), |
jpl_call(F,getFile,[],File). | jpl_call(F,getFile,[],File). |
| |
control(X,Buttons):- | control(X,Buttons):- |
change(1,list). | change(1,list). |
change(2,go). | change(2,go). |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
| |
% operator definitions | % operator definitions |
supervisor :- | supervisor :- |
repeat, | repeat, |
% write('=> '), | |
% read(X), | |
% write(echo1-X), | |
doit(X), | doit(X), |
% write(echo2-X), | |
X = exit. | X = exit. |
| |
| |
load :- | load :- |
%write('Enter file name in single quotes (ex. ''room.okb''.): '), | |
readF(F), | readF(F), |
consult(F). % loads a rule file into interpreter work space | consult(F). % loads a rule file into interpreter work space |
lst :- | lst :- |
fact(X), | fact(X), |
info([X]),nl, | info([{X}]),nl, |
fail. | fail. |
lst :- !. | lst :- !. |
lst(X) :- | lst(X) :- |
fact(X), | fact(X), |
info([X]),nl, | info([{X}]),nl, |
fail. | fail. |
lst(_) :- !. | lst(_) :- !. |
| |
:-dynamic(fact/1). | :-dynamic(fact/1). |
| |
| % :- main. |
</code> | </code> |