hyper-abstracted R contest
Dec. 2nd, 2009 09:44 pm
## `*` is the hyper of `+`, `^` is the hyper of `*`
> hyper <- function(fn) function(a,b) Reduce(fn, rep(a,b))
> compose <- function(fn1,fn2) function(x) fn1(fn2(x))
> hyperoperation <- function(n) Reduce(compose,listRep(hyper,n))(`+`)
('rep(obj,n)' and 'listRep(obj,n)' just return a list containing 'obj' n times. I had to invent 'listRep' for technical reasons, namely passing closures to 'rep' returns an error: "object of type 'closure' is not subsettable")
( get it yet? )