WISH: eval() to preserve the "visibility" (now value is always visible)
On 07/02/2015 12:40 PM, Henrik Bengtsson wrote:
Would it be possible to have the value of eval() preserve the "visibility" of the value of the expression? "PROBLEM": # Invisible
x <- 1
# Visible
eval(x <- 2)
[1] 2 "TROUBLESHOOTING":
withVisible(x <- 1)
$value [1] 1 $visible [1] FALSE
withVisible(eval(x <- 2))
$value
[1] 2
$visible
[1] TRUE
WORKAROUND:
eval2 <- function(expr, envir=parent.frame(), ...) {
res <- eval(withVisible(expr), envir=envir, ...)
value <- res$value
if (res$visible) value else invisible(value)
}
x <- 1 eval(x <- 2)
[1] 2
eval2(x <- 3) x
[1] 3
What's wrong with the workaround? Duncan Murdoch