You will want to force the evaluation of the ... arguments, just as you are already forcing the evaluation of 'c', before returning your function. E.g., compare the following two:
# your 'faux', renamed and enhanced a bit f0 <- function (c, nm = "gamma", ...) { probFunc <- getFunction(paste0(c, nm)) function(x) probFunc(x, ...) } # the above but adding a call to force the evaluation of the ... argument before returning the function f1 <- function (c, nm = "gamma", ...) { probFunc <- getFunction(paste0(c, nm)) force(list(...)) function(x) probFunc(x, ...) } # Now use mapply to make a list of functions with various parameters z0 <- mapply(c=c("p","d"), nm="norm", mean=c(1,-1), FUN=f0) z1 <- mapply(c=c("p","d"), nm="norm", mean=c(1,-1), FUN=f1) z0[[1]](0.1) # expect same result as pnorm(0.1, mean=1) # [1] 0.8643339 # bad z1[[1]](0.1) # expect same result as pnorm(0.1, mean=1) # [1] 0.1840601 # good # for reference: pnorm(0.1, mean=1) # [1] 0.1840601 pnorm(0.1, mean=-1) # [1] 0.8643339 You don't have to say 'force(list(...))' to force their evaluation. You could use 'junk <- list(...)' or 'junk <- c(...)', but using the force function should indicate that you are only doing this to force the evaluation of the argument at this point, not because you intend to use the result of list(...) or c(...). Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf > Of Julio Sergio > Sent: Wednesday, June 05, 2013 1:26 PM > To: r-h...@stat.math.ethz.ch > Subject: Re: [R] Trying to build up functions with its names by means of > lapply > > Bert Gunter <gunter.berton <at> gene.com> writes: > > > > > faux <- function(c, nm = "gamma",...){ > > f <- get(paste0(c,nm)) > > function(x)f(x,...) > > } > > > > This could be called with: > > > > > xgam <- lapply(c("p","d"), faux, shape=k, scale=theta) > > > xgam[[1]](1000) > > [1] 0.8710477 > > > xgam[[2]](1000) > > [1] 0.001265311 > > > > Excellent, Bert, and thanks a lot for your contribution! In fact, I was > planning to write a separate functions producer for each distribution. This > really saves me a lot of work! > > > -Sergio > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.