Je sais ce qu'est la récursion (lorsqu'un motif se reproduit en lui-même, généralement une fonction qui s'appelle sur une de ses lignes, après une rupture conditionnelle ... n'est-ce pas?), Et je peux comprendre les fonctions récursives si je les étudie de près. Mon problème est que lorsque je vois de nouveaux exemples, je suis toujours confus au départ. Si je vois une boucle, ou un mappage, un zip, une imbrication, un appel polymorphe, etc., je sais ce qui se passe simplement en le regardant. Quand je vois du code récursif, mon processus de réflexion est généralement «wtf is this? suivi de «oh c'est récursif» suivi de «je suppose que cela doit fonctionner, s'ils disent que c'est le cas».
Avez-vous donc des conseils / plans / ressources pour développer des compétences dans ce domaine? La récursivité est une sorte de concept étrange, donc je pense que la façon de l'aborder peut être tout aussi étrange et inévitable.