16 lines
255 B
Text
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
|
|
).
|