RosettaCodeData/Task/Factorial/Mercury/factorial-1.mercury
2015-02-20 00:35:01 -05:00

16 lines
255 B
Text

:- module factorial.
:- interface.
:- import_module integer.
:- func factorial(integer) = integer.
:- implementation.
:- pragma memo(factorial/1).
factorial(N) =
( N =< integer(0)
-> integer(1)
; factorial(N - integer(1)) * N
).