RosettaCodeData/Task/Compile-time-calculation/Prolog/compile-time-calculation.pro

10 lines
241 B
Prolog

% Taken from RosettaCode Factorial page for Prolog
fact(X, 1) :- X<2.
fact(X, F) :- Y is X-1, fact(Y,Z), F is Z*X.
goal_expansion((X = factorial_of(N)), (X = F)) :- fact(N,F).
test :-
F = factorial_of(10),
format('!10 = ~p~n', F).