mirror of
https://github.com/RGBCube/nu_scripts
synced 2025-08-01 06:37:46 +00:00

Since 0.101.0 we will finally catch more illegal `def` signatures. As the grammar for input/output types is rather restricted, this would error otherwise
9 lines
315 B
Text
9 lines
315 B
Text
# Compute the factorial of a number
|
|
# This version just returns either the value or a thunk.
|
|
# Meant to be used in a trampoline
|
|
# But still uses APS
|
|
def fact [n: int, acc=1]: nothing -> int {
|
|
if $n <= 1 { return $acc } else {
|
|
{|| fact ($n - 1) ($n * $acc) } # The thunk being returned to the trampoline
|
|
}
|
|
}
|