Factorial: Difference between revisions

→‎{{header|Clojure}}: added trampolining solution, updated all solutions to support arbitrary precision
No edit summary
(→‎{{header|Clojure}}: added trampolining solution, updated all solutions to support arbitrary precision)
Line 2,968:
=== Folding ===
<syntaxhighlight lang="lisp">(defn factorial [x]
(apply *' (range 2 (inc x))))</syntaxhighlight>
 
=== Recursive ===
Line 2,974:
(if (< x 2)
1
(*' x (factorial (dec x)))))</syntaxhighlight>
 
=== Tail recursive ===
Line 2,982:
(if (< x 2)
acc
(recur (dec x) (*' acc x)))))</syntaxhighlight>
 
=== Trampolining ===
<syntaxhighlight lang="lisp">(defn factorial
([x] (trampoline factorial x 1))
([x acc]
(if (< x 2)
acc
#(factorial (dec x) (*' acc x)))))</syntaxhighlight>
 
=={{header|CLU}}==
15

edits