Функция, которая принимает функцию в качестве входных данных и делает ее выражения видимыми при вызове - PullRequest
1 голос
/ 08 октября 2019

Опираясь на этот вопрос SO здесь я хочу написать функцию, которая управляет другими функциями путем (1) установки каждой видимой строки () и (2) обтекания withAutoprint({}) вокруг телафункция. Во-первых, хотя некоторые вызовы trace() дадут желаемый результат, но почему-то я не могу понять это.

Вот простой пример:

# Input function foo
foo <- function(x)
{
  line1 <- x
  line2 <- 0
  line3 <- line1 + line2
  return(line3)
}

# some function which alters foo (here called make_visible() )
foo2 <- make_visible(foo)

# so that foo2 looks like this after being altered
foo2 <- function(x)
{
 withAutoprint({
  (line1 <- x)
  (line2 <- 0)
  (line3 <- line1 + line2)

  (return(line3))
 })
}

# example of calling foo2 and desired output/result
> foo2(2)
> (line1 <- x)
[1] 2
> (line2 <- 0)
[1] 0
> (line3 <- line1 + line2)
[1] 2
> (return(line3))
[1] 2
...