[R] Reducing a list of functions by composition fails

Mog mogunus at gmail.com
Thu Aug 5 22:31:44 CEST 2010


Hi All,

I'd like to be able to specify the ordered composition of several
functions. So I defined compose:

compose <- function(f,g){
  function(x){f(g(x))}
}

and some simple test functions:

plus2 <- function(x){x+2}
plus3 <- function(x){x+3}
plus4 <- function(x){x+4}

>  (compose(plus2,compose(plus3,plus4)))(3)
[1] 12

Works fine. But trying to reduce a list of functions by compose fails:

> Reduce(compose,list(plus2,plus3,plus4),right=TRUE)(3)
Error: evaluation nested too deeply: infinite recursion / options(expressions=)?

As far as I can tell, that reduction should be the same as my call
above. What am I doing wrong?

Thanks very much!



More information about the R-help mailing list