[Rd] How do you construct a function from a list?

Duncan Murdoch dmurdoch@pair.com
Tue, 21 Nov 2000 14:01:59 GMT


I'm trying to get a data.restore function to work on functions.  One
thing I can't figure out:  how do you construct a function from it's
component parts?

For example, I can construct a for loop as

forloop <-
as.call(list(as.name('for'),as.name('i'),1,as.call(list(as.name('junk')))))

which results in 

 for (i in 1) junk()

But how do I put that in a function?  For example, I'd like the
function

  function()  for (i in 1) junk()

but  as.function(list(forloop)) results in

 function () 
 list(for (i in 1) junk())

which returns the for loop in a list, it doesn't execute it.  How do I
construct the function?

(This might be a bug in as.function, because 

  as.function(c(alist(a=,b=2),forloop))

returns the expected function

 function (a, b = 2) 
 for (i in 1) junk()

It's just that I can't seem to find a way to do it when there are no
arguments.)

Duncan Murdoch
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._