[Rd] A doubt about substitute() after delayedAssign()

Philippe Grosjean phgrosjean at sciviews.org
Sun Apr 29 09:30:51 CEST 2012


Hello,

?delayedAssign presents substitute() as a way to look at the expression 
in the promise. However,

msg <- "old"
delayedAssign("x", msg)
msg <- "new!"
x #- new!
substitute(x) #- x (was 'msg' ?)

Here, we just got 'x'... shouldn't we got 'msg'?

Same result when the promise is not evaluated yet:

delayedAssign("x", msg)
substitute(x)

In a function, that works:

foo <- function (x = msg) substitute(x)
foo()

Did I misunderstood something? It seems to me that substitute() does not 
behaves as documented for promises created using delayedAssign().
Best,

Philippe
-- 
..............................................<¡}))><........
  ) ) ) ) )
( ( ( ( (    Prof. Philippe Grosjean
  ) ) ) ) )
( ( ( ( (    Numerical Ecology of Aquatic Systems
  ) ) ) ) )   Mons University, Belgium
( ( ( ( (
..............................................................



More information about the R-devel mailing list