(defmodule FACTORIAL
  :documentation "Simple factorial computation")

(in-module "FACTORIAL")

(deffunction (factorial INTEGER) ((n INTEGER))
  :documentation "Compute factorial of n"
  :public? TRUE
  (if (<= n 1)
      1
    (* n (factorial (- n 1)))))

(defun main ()
  (print "Factorial of 5 = " (factorial 5) EOL)
  (print "Factorial of 10 = " (factorial 10) EOL))
