Racket:
> (define (fact n) (if (= n 1) 1 (* n (fact (- n 1))))) > (fact 6) 720
# let rec fact = function | 1 -> 1 | n when n > 1 -> n * (fact (n - 1)) in fact 6;; - : int = 720