madlisp/mad/fact.mad
2020-12-05 10:39:58 +07:00

12 lines
377 B
Plaintext

;; Functions to calculate factorial
;; Recursive version, not tail call optimized
(def recFact (fn (n) (if (< n 2) 1 (* n (recFact (dec n))))))
;; Apply version
(def applyFact (fn (n) (if (< n 2) 1 (apply * (range 1 (inc n))))))
;; Add documentation
(doc recFact "Calculate the factor of n recursively.")
(doc applyFact "Calculate the factor of n iteratively using apply.")