假设我有一个函数,它接受一些参数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}}?
答案 0 :(得分:1)
一种选择是合并eval
和bquote
。
makeFn <- function(k) {
eval(bquote(function(n) rep(.(k),n)))
}
five <- makeFn(5)
body(five)
# rep(5, n)
.()
表示法告诉bquote
评估括号中的内容,然后将结果包含在表达式中。