16 lines
371 B
R
16 lines
371 B
R
# Drossel: fn => fn(fn)
|
|
# usage: drossel(function(self, arg1, arg2))
|
|
# it's basically just a factory hiding the function name
|
|
# in a closure. easy!
|
|
drossel <- function (func) function (...) func(func, ...)
|
|
|
|
# example: factorial
|
|
# TODO: play with lazy evaluation?
|
|
fac_ <- function (self, n) {
|
|
if (n < 2) 1
|
|
else n * self(self, n - 1)
|
|
}
|
|
|
|
fac <- drossel(fac_)
|
|
|
|
fac(8)
|