gpt4 book ai didi

r - 为什么惰性求值不会破坏这段代码?

转载 作者:行者123 更新时间:2023-12-04 17:30:12 24 4
gpt4 key购买 nike

add <- function(x) {
function(y) x + y
}
adders <- lapply(1:10, add)
adders[[1]](10)

在上面的代码中,Wickham 在 Advanced R 中声称,因为函数参数是惰性求值的,所以对于由 lapply(1:10, add) 创建的所有闭包,x 将为 10。但是在我在 R session 中运行代码后情况并非如此,但就我所知,即使是他的示例也没有证明上述代码的破坏 - 为什么会这样?

最佳答案

其中一条评论已经回答了这个问题:lapply被修改为具有与 Wickham 当时所写的不同的行为。

如果你想更深入地研究它,这里是更改它的 R 开发电子邮件线程:https://stat.ethz.ch/pipermail/r-devel/2015-February/070686.html

这里是 Hadley Wickham 讨论如何在高级 R 的下一版本中修复该示例:https://github.com/hadley/adv-r/issues/803

关于r - 为什么惰性求值不会破坏这段代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52631409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com