/* logica2.mar */
/* condizione di verita OR o punto virgola */

nowarnings
domains
nome = symbol

predicates
animale(nome)
anfibio(nome)
rettile(nome)
vegetale(nome)
frutto(nome)
azione
goal azione.

clauses
azione:-makewindow(1,7,1,"",1,1,20,78),
animale(rana),
write("rana = animale ",rana),nl,
N=ramarro,
animale(N),
write("animale=",N),nl,
M=vipera,
animale(M),write("animale=",M),nl,
T=mela,
write(T,"\t"),
animale(T),
write(T);write("non animale:"),nl,
V=mela,
vegetale(V),
write(V,"\t=vegetale"),nl,
W=vipera,
write(W),
vegetale(W);
write("\t=non vegetale"),nl,
write("premi enter"),readchar(_),clearwindow,
attribute(5),
write("stampa tutti i vegetali"),nl,
attribute(7),
vegetale(X),
write(X),nl,fail;
attribute(3),
write("stampa tutti gli animali"),nl,
attribute(7),
animale(Y),
write(Y),nl,fail.


/* X e' animale se X e' anfibio o rettile */
animale(X):-anfibio(X);rettile(X).

/* X e' vegetale se X e' frutto */
vegetale(X):-frutto(X).

anfibio(rana).
anfibio(rospo).
anfibio(tritone).
rettile(vipera).
rettile(lucertola).
rettile(ramarro).
frutto(mela).
frutto(pera).
frutto(fragola).

+------------------------
¦+-----------------------
+¦rana = animale rana
+¦animale=ramarro
¦¦animale=vipera
¦¦mela    non animale:
¦¦mela    =vegetale
¦¦vipera  =non vegetale
¦¦premi enter
¦¦
+--------------------------------
¦+-------------------------------
+¦stampa tutti i vegetali
+¦mela
¦¦pera
¦¦fragola
¦¦stampa tutti gli animali
¦¦rana
¦¦rospo
¦¦tritone
¦¦vipera
¦¦lucertola
¦¦ramarro
¦¦
¦¦Press the SPACE bar
¦¦
ritorna