【发布时间】:2025-06-13 12:30:02
【问题描述】:
我试图了解 R 中的惰性求值是如何工作的。它仅适用于函数参数的评估吗?因为我理解,例如
f <- function(x = x, y = x*2) {
c(x, y)
}
f(2)
[1] 2 4
但在其他语言中,例如Haskell,惰性求值意味着函数调用只有在实际使用时才会被求值。所以我希望这样的事情会立即运行:
g <- function(x) {
y <- sample(1:100000000)
return(x)
}
g(4)
但它清楚地评估了 sample 调用,即使它的结果没有被使用。
有人可以准确解释这是如何工作的,或者指出我详细解释的方向吗?
类似问题:
【问题讨论】:
标签: r function haskell lazy-evaluation