欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

系统整理js递归函数的应用及对递归爆栈问题的解决

程序员文章站 2022-04-07 10:55:27
...
在学习js时,递归这块内容是挺杂乱的,所以据此我给大家整理了关于递归的相关内容,文章通过案例代码介绍的较为详细,会对大家的学习有一定的帮助,在文章开始我先介绍了递归的基础内容,让大家有个知识概念,这样后面的学习不会一头雾水,后面列举了使用递归的例子。apache php mysql

前言

递归性能差是没争议的事实,如果你觉得 for 循环更好,没必要学递归,那看到这里你可以不用看了。这篇文章要展示的大部分代码,仅仅是学习目的,我不推荐在生产环境中用。但是如果你对函数式编程感兴趣,想深入理解一些核心概念,你应该读下去。

今年年初我开始学 Haskell 的时候,我被函数式代码的优雅和简洁俘获了。代码居然还能这样写!用指令式代码要写一堆的程序,用递归几行就解决了。这篇文章里,我会把我在 Haskell 里面看到的递归函数翻译成 JS 和 Python,并尽量每一步解释。最后我会尝试解决递归爆栈(Stack Overflow)的问题。

递归基础

我从 Python 代码开始,然后展示 JS 实现。

很多解释递归的教程是从解释斐波那契数列开始的,我觉得这样做是在用一个已经复杂的概念去解释另一个复杂的概念,没有必要。我们还是从简单的代码开始吧。

运行这段 Python 代码:

def foo():
 foo()

foo()

当然会报错。

以上就是系统整理js递归函数的应用及对递归爆栈问题的解决的详细内容,更多请关注其它相关文章!