I thought that perhaps the behavior in the previous post, while inconsistent with the documentation, was not all that harmful but I think its related to the following which is a potentially serious bug. z is a list with a single numeric component, as the dput output verifies, yet we cannot compare its first element to 7 without getting an error message.
Later on we see that its because it thinks that z[[1]] is of type "promise" and even force(z[[1]]) is of type "promise". > f <- function(x) environment() > z <- as.list(f(7)) > dput(z) structure(list(x = 7), .Names = "x") > z[[1]] == 7 Error in z[[1]] == 7 : comparison (1) is possible only for atomic and list types > force(z[[1]]) == 7 Error in force(z[[1]]) == 7 : comparison (1) is possible only for atomic and list types > > typeof(z) [1] "list" > typeof(z[[1]]) [1] "promise" > typeof(force(z[[1]])) [1] "promise" > R.version.string # Vista [1] "R version 2.6.0 beta (2007-09-23 r42958)" On 9/19/07, Gabor Grothendieck <[EMAIL PROTECTED]> wrote: > The last two lines of example(delayedAssign) give this: > > > e <- (function(x, y = 1, z) environment())(1+2, "y", {cat(" HO! "); pi+2}) > > (le <- as.list(e)) # evaluates the promises > $x > <promise: 0x032b31f8> > $y > <promise: 0x032b3230> > $z > <promise: 0x032b3268> > > which contrary to the comment appears unevaluated. Is the comment > wrong or is it supposed to return an evaluated result but doesn't? > > > R.version.string # Vista > [1] "R version 2.6.0 alpha (2007-09-06 r42791)" > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel