It is sometimes useful to create a promise using a constructed expression, but 
delayedAssign will always substitute the expression argument. I am currently 
using this pattern to achieve this:

expr <- bquote(…)
eval(call("delayedAssign", x, expr, eval.env = eval_env))

But it would be nice if base R already had a function that takes quoted promise 
body. It could be named delayedAssign0 or delayedAssignq (similar to evalq). 
The definition of such function would be trivial (just remove substitute from 
delayedAssign):

function (x, value, eval.env = parent.frame(1), assign.env = parent.frame(1)) 
.Internal(delayedAssign(x, substitute(value), eval.env, assign.env))

Maybe R maintainers could consider adding this function? I would be happy to 
submit a patch. 

Best, 

Taras


        [[alternative HTML version deleted]]

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to