Left factorials
say 20.of { .left_factorial }func left_factorial(n) {
^n -> sum { _! }
}func left_factorial(n) {
^n -> reduce({ |a,b| a + b! }, 0)
}func left_factorial(n) {
static cached = 0
static factorial = 1
static leftfact = 0
if (n < cached) {
cached = 0
factorial = 1
leftfact = 0
}
while (n > cached) {
leftfact += factorial
factorial *= ++cached
}
leftfact
}Output:
Last updated