如何使用已解析的变量打印函数体

时间:2017-12-14 23:55:57

标签: r functional-programming

假设我有一个函数,它接受一些参数n并返回另一个函数,该函数接受参数k但在函数体中使用makeFn <- function(k) { function(n){ rep(k,n) } } five <- makeFn(5) five(3) # [1] 5 5 5 body(five) # { # rep(k, n) # }

five

如何打印rep(5,n)的正文,使其显示rep(k,n)而不是{{1}}?

1 个答案:

答案 0 :(得分:1)

一种选择是合并evalbquote

makeFn <- function(k) {
  eval(bquote(function(n) rep(.(k),n)))
}

five <- makeFn(5)
body(five)
# rep(5, n)

.()表示法告诉bquote评估括号中的内容,然后将结果包含在表达式中。