(def fac (n (o m 1)) (if (> n 0) (fac (- n 1) (* m n)) m)) (def sfac (n (o m 1)) (if (> n 0) (sfac (- n 1) (* m (fac n))) m))
(def fac (n) (apply * (range 1 n))) (def sfac (n) (apply * (map fac (range 1 n))))