Hi,
I thought I understood the change to lapply semantics resulting from this,
https://bugs.r-project.org/bugzilla/show_bug.cgi?id=16093
However, would someone care to explain why this does not work?
> L <- list(a=1, b=2, c=3)
> str(lapply(L, function(x){ y <- substitute(x); force(x); eval(y) }))
Error in eval(y) : object 'X' not found
Basically, my primary goal is to achieve the same result as,
> str(lapply(L, function(x){ eval.parent(substitute(x)) }))
List of 3
$ a: num 1
$ b: num 2
$ c: num 3
but without having to resort to eval.parent as that seems to rely on an
implementation detail of lapply.
My secondary goal is to understand why force(x) does not actually force
the promise here,
> str(lapply(L, function(x){ force(x); pryr::is_promise(x) }))
List of 3
$ a: logi TRUE
$ b: logi TRUE
$ c: logi TRUE
,
Regards
Ben
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel