Lors de l'apprentissage de js, le contenu de la récursion est assez compliqué, j'ai donc compilé pour vous le contenu pertinent sur la récursivité. L'article le présente en détail à travers le code de cas, ce qui sera utile à l'apprentissage de chacun au début. Dans cet article, j'ai d'abord présenté le contenu de base de la récursivité pour permettre à chacun d'avoir un concept de connaissances, afin que les études ultérieures ne soient pas confuses. Plus tard, des exemples d'utilisation de la récursion ont été répertoriés. apache php mysql
Préface
C'est un fait incontestable que les performances récursives sont médiocres. Si vous pensez que la boucle for est meilleure, il y en a. pas besoin d'apprendre la récursivité. Ensuite, vous n'avez plus besoin de lire quand vous voyez cela. La plupart du code présenté dans cet article est uniquement destiné à des fins d'apprentissage et je ne recommande pas de l'utiliser dans un environnement de production. Mais si vous êtes intéressé par la programmation fonctionnelle et souhaitez comprendre en profondeur certains des concepts de base, vous devriez continuer à lire.
Lorsque j'ai commencé à apprendre Haskell au début de cette année, j'ai été captivé par l'élégance et la simplicité du code fonctionnel. Le code peut en fait être écrit comme ceci ! Utiliser du code impératif nécessite d’écrire de nombreux programmes, qui peuvent être résolus avec seulement quelques lignes de récursion. Dans cet article, je vais traduire les fonctions récursives que j'ai vues dans Haskell en JS et Python, et essayer d'expliquer chaque étape. Enfin, je vais essayer de résoudre le problème de l'explosion récursive de pile (Stack Overflow).
Bases de la récursion
Je commence par le code Python, puis je montre l'implémentation JS.
De nombreux tutoriels expliquant la récursivité commencent par expliquer la séquence de Fibonacci. Je pense que cela utilise un concept déjà complexe pour expliquer un autre concept complexe, ce qui est inutile. Commençons par un code simple.
Exécutez ce code Python :
def foo(): foo() foo()
Bien sûr, une erreur sera signalée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!