6
我想了解R中懶惰評估的工作原理。它只適用於函數參數的評估嗎?因爲我明白,例如瞭解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
電話。
難道有人可以解釋這是如何工作的,或者指向我詳細解釋的方向?
類似的問題:
Question with similar wording, but different problem
我指的是哈德利韋翰的書,他提到: 「默認情況下,R函數的參數是懶惰的,他們只是評估,如果實際使用」。最新版本是不是真的呢? – Sarang
請注意,這個問題包含了這個短語「它是否僅適用於函數參數的評估?」我的回答與韋克漢姆的說法並不矛盾。 –