OCaml le gère sans problème au niveau du compilateur, mais la bibliothèque de base n'est pas implémentée pour l'utiliser sur des opérations de base (par exemple List.map) !
Dans la pratique personne n'utilise la bibliothèque fournie par défaut, et se tourne vers des librairies tierces, qui elles le gèrent sans problème.
Edit : Et par rapport à un langage comme scala, il n'est pas possible de demander au compilateur de vérifier qu'une fonction est bien optimisée. En scala je crois que le mot clef « tailrec » va lever une exception s'il est appliqué à une fonction non optimisée.
[^] # Re: C'est pourtant évident.
Posté par chimrod (site web personnel) . En réponse à la dépêche Coder efficacement, bonnes pratiques et erreurs à éviter. Évalué à 2. Dernière modification le 20 avril 2014 à 00:21.
OCaml le gère sans problème au niveau du compilateur, mais la bibliothèque de base n'est pas implémentée pour l'utiliser sur des opérations de base (par exemple List.map) !
Dans la pratique personne n'utilise la bibliothèque fournie par défaut, et se tourne vers des librairies tierces, qui elles le gèrent sans problème.
Edit : Et par rapport à un langage comme scala, il n'est pas possible de demander au compilateur de vérifier qu'une fonction est bien optimisée. En scala je crois que le mot clef « tailrec » va lever une exception s'il est appliqué à une fonction non optimisée.