【发布时间】:2010-11-26 14:01:36
【问题描述】:
假设我有以下功能:
foo <- function(x, y = min(m)) {
m <- 1:10
x + y
}
当我运行foo(1) 时,返回值是2,正如预期的那样。但是,我无法运行foo(1, y = max(m)) 并接收11,因为惰性求值仅适用于默认参数。我怎样才能提供一个论点但让它懒惰地评估?
【问题讨论】:
-
"惰性求值只适用于默认参数",你确定吗? IIUC 惰性求值发生在所有函数参数上。您的示例不起作用的原因是因为 m 不在调用者的范围内。
标签: r lazy-evaluation