Bon nombre de sous-programmes non terminaux peuvent être réécrits de façon terminale. Cela se fait par l'ajout d'un paramètre, appelé accumulateur. La forme d'un programme récursif terminal est la suivante :
Il faut faire en sorte qu'une fois la condition d'arrêt vérifiée le
paramètre contienne le résultat.