Une fois un doctorant en mathématiques que je savais très brillant, mais qui avait peu d'expérience en programmation, je cherchais mes conseils sur la façon d'écrire une certaine fonction. J'ai rapidement dit: «Vous n'avez même pas besoin de me dire ce que la fonction est censée faire. La réponse est d'utiliser la récursivité. "Surpris, il a demandé quelle est la récursivité. Je lui ai conseillé de lire sur le célèbre problème des tours de Hanoi. Effectivement, il est revenu le lendemain, rapportant qu'il était capable de résoudre son problème en quelques lignes de code, en utilisant la récursivité. Évidemment, la récursivité peut être un outil puissant. Eh bien, qu'est-ce que c'est?
Une fonction récursive s'appelle elle-même. Si vous n'avez pas rencontré ce concept auparavant, cela peut sembler étrange, mais l'idée est en fait simple. En termes approximatifs, l'idée est la suivante:
Pour résoudre un problème de type X en écrivant une fonction récursive f ():
1. Cassez le problème initial de type X en un ou plusieurs problèmes plus petits de type X.
2. Dans f (), appelez f () sur chacun des petits problèmes.
3. Dans f (), rassembler les résultats de (b) pour résoudre le problème originel.
Une fonction récursive s'appelle elle-même. Si vous n'avez pas rencontré ce concept auparavant, cela peut sembler étrange, mais l'idée est en fait simple. En termes approximatifs, l'idée est la suivante:
Pour résoudre un problème de type X en écrivant une fonction récursive f ():
1. Cassez le problème initial de type X en un ou plusieurs problèmes plus petits de type X.
2. Dans f (), appelez f () sur chacun des petits problèmes.
3. Dans f (), rassembler les résultats de (b) pour résoudre le problème originel.