Source: https://etablissementbertrandeborn.net/blog/public/PC/Informatique/recursivite.pdf