标签: r lazy-evaluation
根据Hadley Wickham的《 Advanced R》一书,以下两种代码在两种情况下均应显示20。这是因为x应该在第一次调用加法器函数时被延迟计算。至此,循环完成,x的最终值为10。
他提出的解决方案是使用dos2unix作为force(x)定义的第一行。
dos2unix
force(x)
但是,在尝试执行代码时,我得到了正确的输出,即11和20,而没有使用add。
add
谁能解释为什么会这样?这仅仅是R的最新版本中的更改吗? (我正在使用 R 3.5.0 )
force()