URL: https://linuxfr.org/users/tchetch/journaux/chantonnons-en-recursion Title: Chantonnons en récursion Authors: Etienne Bagnoud Date: 2012年11月22日T15:13:29+01:00 License: CC By-SA Tags: recursivité et mathématiques Score: 32 Dernièrement, je parlais, avec une connaissance (ça me change de parler tout seul), du très célèbre [Yusuf Islam](http://fr.wikipedia.org/wiki/Cat_Stevens). De cette conversation, l'envie de ré-écouter un peu de sa musique m'a prise à la gorge et je me suis décidé à acheter, légalement, sur [iTunes](http://thepiratebay.se) (si ce lien a la couleur d'un lien déjà visité, ne bougez pas, la police arrive) , quelques un de ses grands tubes. Au détour de la chanson "[Can't keep it in](http://en.wikipedia.org/wiki/Catch_Bull_at_Four)", j'entends ce petit passage lyrique, qui semble sans conséquence mais qui est effectivement dramatique :> Love is my blood> Blood spin my head> And my head fall in love En bon psychopathe de l'informatique que je suis, je n'ai pu me retenir de penser que la pile d'appel allait exploser ! Si on met ça en C, ça donnerait un code ressemblant à ça : ```c void love(void); void blood(void); void head(void); void love(void) { blood(); } void blood(void) { head(); } void head(void) { love(); } int main(int argc, char ** argv) { love(); return 0; } ``` Depuis cette chanson, je pense tous les jours à la récursion. En fait, écouter cette chanson me fait penser à la récursion, penser à la récursion me fait penser à cette chanson, penser à cette chanson me fait écouter cette chanson ... aaaargh : ```c void think_recurs(void); void think_cantkeepitin(void); void listen_cantkeepitin(void); void think_recurs(void) { think_cantkeepitin(); } void think_cantkeepitin(void) { listen_cantkeepitin(); } void listen_cantkeepitin(void) { think_recurs(); } int main(int argc, char ** argv) { listen_cantkeepitin(); /* c'est la ou tout a commence */ return 0; /* jamais */ } ``` Voilà, voilà ... Je vous laisse à vos occupations et je vais signer le registre d'entrée que me propose ce gentil monsieur en blouse blanche. PS: Désolé, un des effets de bords de la chanson intitulée "Can't keep it in", soit "Peux pas le contenir", c'est qu'on ne peut pas le contenir et donc on en fait un journal (après avoir forcé toutes ses connaissances à écouter dix fois la chanson).