/* 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