我正在关注Hadley Wickham的高级R,并通过一个关于懒惰评估的例子。
我首先创建一个add函数:
> add <- function(x){
+ function(y) x+y
+ }
然后我在其上使用apply函数:
adders <- lapply(1:10, add)
现在根据这本书,由于R中的懒惰评价,当我尝试时,
adders[[1]](20)
应该得到10 + 20 = 30的答案,但对我来说它给出答案21。
> adders[[1]](20)
[1] 21
有关为什么延迟评估无法在预期行上运行的任何建议?