predicates nondeterm fatt(integer, real) clauses fatt(0,1). /* if !. */ fatt(N,R) if N>0,N1=N-1,fatt(N1,R1), /* oppure senza N>0, ma con cut sopra */ R=N*R1. goal write("Calcolo il fattoriale di "), readint(N), fatt(N,F), write("Il risultato e' ", F), nl.