Factorial: Difference between revisions
Content added Content deleted
(Added Asymptote) |
Langurmonkey (talk | contribs) |
||
Line 6,041: | Line 6,041: | ||
=={{header|langur}}== |
=={{header|langur}}== |
||
=== Folding === |
=== Folding === |
||
<syntaxhighlight lang="langur">val .factorial = |
<syntaxhighlight lang="langur">val .factorial = fn(.n) fold(fn{*}, 2 .. .n) |
||
writeln .factorial(7)</syntaxhighlight> |
writeln .factorial(7)</syntaxhighlight> |
||
=== Recursive === |
=== Recursive === |
||
<syntaxhighlight lang="langur">val .factorial = |
<syntaxhighlight lang="langur">val .factorial = fn(.x) if(.x < 2: 1; .x * self(.x - 1)) |
||
writeln .factorial(7)</syntaxhighlight> |
writeln .factorial(7)</syntaxhighlight> |
||
=== Iterative === |
=== Iterative === |
||
<syntaxhighlight lang="langur">val .factorial = |
<syntaxhighlight lang="langur">val .factorial = fn(.i) { |
||
var .answer = 1 |
var .answer = 1 |
||
for .x in 2 .. .i { |
for .x in 2 .. .i { |
||
.answer *= .x |
|||
} |
} |
||
.answer |
.answer |
||
} |
} |
||
writeln .factorial(7)</syntaxhighlight> |
writeln .factorial(7)</syntaxhighlight> |
||
=== Iterative Folding === |
=== Iterative Folding === |
||
<syntaxhighlight lang="langur">val .factorial = |
<syntaxhighlight lang="langur">val .factorial = fn(.n) for[=1] .x in .n { _for *= .x } |
||
writeln .factorial(7)</syntaxhighlight> |
writeln .factorial(7)</syntaxhighlight> |
||