diff --git a/docs/function.md b/docs/function.md index d83ad6a..aac74df 100644 --- a/docs/function.md +++ b/docs/function.md @@ -1131,8 +1131,8 @@ function Fibonacci (n) { } Fibonacci(10) // 89 -Fibonacci(100) // 堆栈溢出 -Fibonacci(500) // 堆栈溢出 +Fibonacci(100) // 超时 +Fibonacci(500) // 超时 ``` 尾递归优化过的 Fibonacci 数列实现如下。 @@ -1149,7 +1149,7 @@ Fibonacci2(1000) // 7.0330367711422765e+208 Fibonacci2(10000) // Infinity ``` -由此可见,“尾调用优化”对递归操作意义重大,所以一些函数式编程语言将其写入了语言规格。ES6 亦是如此,第一次明确规定,所有 ECMAScript 的实现,都必须部署“尾调用优化”。这就是说,ES6 中只要使用尾递归,就不会发生栈溢出,相对节省内存。 +由此可见,“尾调用优化”对递归操作意义重大,所以一些函数式编程语言将其写入了语言规格。ES6 亦是如此,第一次明确规定,所有 ECMAScript 的实现,都必须部署“尾调用优化”。这就是说,ES6 中只要使用尾递归,就不会发生栈溢出(或者层层递归造成的超时),相对节省内存。 ### 递归函数的改写