% (1) % A definicao abaixo serve tanto para calcular % o comprimento quanto para verifica-lo length_([],0). length_([_|T],N) :- length_(T, N1), N is N1 + 1. % (2) % calc_fat abaixo apenas calcula o fatorial; % mas fat calcula e verifica. calc_fat(0,1). calc_fat(N,F) :- N > 0, N1 is N - 1, calc_fat(N1,F1), F is N * F1. fat(N,F) :- calc_fat(N,F1), F is F1. % (3)