![]() |
![]() |
![]() |
![]() |
Kui on kindel, et mingi moodul töötab vigadeta, võib selle kompileerida käsuga compile laademooduliks (laiendiga .plm) ja laadida .pro mooduli asemel vastava .plm mooduli; erinevus on vaid selles, et nüüd moodulis kirjeldatud predikaate käsuga listing enam vaadat ei saa (ja neid ei saa ka parandada). Et näiteks kasutada programme, kus kasutatakse sõnu "ja", "voi" (pro "või"), "ei", tuleb algul sooritada consult('eesti.pro') või consult('eesti.plm').
Eesti.pro:
:-op(700,xfx,oleks).
:-op(1000,xfy,ja).
:-op(1100,xfy,voi).
:-op(900,fy,ei).
ja(X,Y) :- X, Y.
ei(X):- not (X).
voi(X,Y):-X;Y.
oleks(X,Y):-var(X),var(Y),!,X==Y.
oleks(X,Y):-(atom(X);atom(Y)),!, X=Y.
oleks(X,Y):-var(X),!,X is Y.
oleks(X,Y):-var(Y),!,Y is X.
oleks(X,Y):-Z is X,Z is Y.
lause(X):-clause(X,true).
lisa(X):-asserta(X).
eemalda(X):-retract(X).
eemalda_koik(X):-retractall(X).
uuesti:-fail.
loe(X):- read(X).
kirjuta(X):-write(X).
kirjuta_nimistu([]):-!,nl.
kirjuta_nimistu([X|Y]):- write(X),kirjuta_nimistu(Y).
max(L1,L2,L3):-(L2<L1,!,L3=L1;L3=L2).
rv:-nl.
yhenda([],X,X).
yhenda([X|Y],Z,[X|Y1]):-yhenda(Y,Z,Y1).
tahed(X,Y):-string_list(X,Y).
pikkus([X],1):-!.
pikkus([X|Y],N):-pikkus(Y,N1),!,N oleks N1+1.
esineb(X,Y):-member(X,Y). lahendid(Term,Tingimus,Nimistu):-findall(Term,Tingimus,Nimistu). %Nimistusse kantakse kõik Termid, mis taidavad tingimust Tingimus
tee(X):-X,!.
tee(X):-write(' Ei onnestu !'),nl,fail.
Küsimused, probleemid:
jaak@cc.ttu.ee