创建一个简单的递归函数,如下所示.
power <- function(x, n) {
if(n >= 1) x * power(x, n-1)
else 1
}
Run Code Online (Sandbox Code Playgroud)
当n设置为1e4时,它显示错误infinite recursion
.正如错误消息所示,我更新了option参数,在这种情况下,stack overflow
遇到了错误.
## error to run power 10000 times with defalult option
options()$expressions
#[1] 5000
power(2, 1e3)
#[1] 1.071509e+301
power(2, 1e4)
#Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
#Error during wrapup: evaluation nested too deeply: infinite recursion / options(expressions=)?
## expressions parameter updated and results in stack overflow
options(expressions = 100000)
power(2, 1e4)
#Error: protect(): protection stack …
Run Code Online (Sandbox Code Playgroud) r ×1