Introduction à la récursivité
Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 47 sur 65.
La récursion est une technique de programmation où une fonction s'appelle elle-même pour résoudre un problème. Imaginez cela comme le fait de regarder dans deux miroirs face à face : chaque reflet contient une version plus petite de la même image, créant une boucle infinie jusqu'à ce que les reflets deviennent trop petits pour être vus.
Chaque fonction récursive a besoin de deux composants essentiels pour fonctionner correctement. Le cas de base est la condition qui arrête la récursion - c'est comme le point où les reflets du miroir deviennent trop petits pour avoir de l'importance. Sans cas de base, votre fonction s'appellerait indéfiniment, finissant par faire planter votre programme.
L'étape récursive est le moment où la fonction s'appelle elle-même avec une version modifiée du problème d'origine. Chaque fois que la fonction s'appelle elle-même, elle doit travailler sur une version plus petite ou plus simple du problème, se rapprochant progressivement du cas de base.
Imaginez que vous cherchez vos clés dans une pile de papiers. Vous pourriez vérifier le premier papier, et si vos clés ne s'y trouvent pas, vous feriez la même chose avec la pile restante (qui est maintenant réduite d'un papier). Vous continueriez à répéter ce processus jusqu'à ce que vous trouviez vos clés ou qu'il ne reste plus de papiers à vérifier.
Cette approche consistant à décomposer un gros problème en problèmes plus petits et identiques est ce qui rend la récursivité si puissante pour certains types de défis de programmation.
Aide-mémoire
La récursion est une technique de programmation où une fonction s'appelle elle-même pour résoudre un problème en le décomposant en problèmes plus petits et identiques.
Chaque fonction récursive a besoin de deux composants essentiels :
Cas de base : La condition qui arrête la récursion pour éviter les boucles infinies.
Étape récursive : L'endroit où la fonction s'appelle elle-même avec une version modifiée du problème d'origine, se rapprochant progressivement du cas de base.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Manipulation avancée des listes
Propriétés de liste : first & lastÉtat de la liste : isEmpty & isNotEmptyInverser une listeAjouter à une liste : insertSuppression dans une liste : removeWhereRechercher dans une liste : indexOfTrier une listeMélanger une listeRécapitulatif - Organisateur de liste4Manipulation avancée des Maps
Itérer sur une MapVérifier les clés et les valeursPropriétés de Map : keys & valuesAjout conditionnel : putIfAbsentSupprimer des entrées d'une MapMaps imbriquéesRécapitulatif - Mise à jour de l'inventaire7Fonctions avancées
Fonctions anonymesPassage de fonctions en argumentsComprendre les closuresIntroduction à la récursivitéFonction récursive : Compte à reboursFonction récursive : FactorielleRécapitulatif - List Processor2Opérations fonctionnelles sur les listes
Transformer avec 'map'Filtrer avec 'where'Utiliser '.toList()'Vérifier des conditions avec 'any'Conditions avec 'every'Trouver avec 'firstWhere'Récapitulatif - Filtrage de données3Les Ensembles
Qu'est-ce qu'un ensemble ?Créer un ensembleAjouter et supprimer des éléments d'un ensembleVérifier la présence d'éléments dans un ensembleConvertir une liste en ensembleUnion d'ensemblesIntersection d'ensemblesDifférence d'ensemblesRécapitulatif - Liste d'invités uniques