/* radice.pro */
/* esempio vari tipi argomenti e stampa */
/* scrivere GOAL:valori(intero) */
domains
numero = real
predicates
calcola(numero)
valore(numero)
clauses
calcola(0).
calcola(X) if
X>0,
Y=X-1,
calcola(Y).
valore(X) if
S=sqrt(X), /* operazione */
write("valore......",X,".."),
write("risultato...",S,"..."),
calcola(S).
Goal: valore(25) ¦
valore......25..risultato...¦
5...True ¦
Goal: calcola(64) ¦
True ¦
Goal: valore(36) ¦
valore......36..risultato...¦
6...True ¦
Goal: valore(8) ¦
valore......8..risultato...2¦
.8284271247...False ¦
Goal: ¦
¦
ritorna