Maison > développement back-end > Tutoriel Python > Python optimise-t-il la récursion de queue, et sinon, pourquoi ?

Python optimise-t-il la récursion de queue, et sinon, pourquoi ?

Barbara Streisand
Libérer: 2024-12-03 21:18:12
original
442 Les gens l'ont consulté

Does Python Optimize Tail Recursion, and If Not, Why?

Python optimise-t-il la récursion de la queue ?

Python n'optimise pas la récursion de la queue, comme l'a explicitement déclaré son créateur, Guido van Rossum. Rossum donne la priorité aux traçages appropriés plutôt qu'à l'optimisation potentielle de la récursion de queue.

Pourquoi Python n'optimise pas la récursion de queue

Rossum estime qu'il est plus important de maintenir la capacité de générer des traçages précis que d'optimiser la récursivité de la queue. Les traçages sont essentiels pour le débogage et la compréhension de la manière dont le code est exécuté.

Élimination manuelle de la récursion de queue

Malgré le manque d'optimisation de la récursion de queue de Python, vous pouvez éliminer manuellement la récursion à l'aide d'une transformation . Convertissez la fonction récursive en boucle while et mettez à jour les paramètres dans la boucle au lieu d'utiliser la récursion de queue.

Exemple : élimination de la récursion de queue

def trisum(n, csum):
    while True:                     # Change recursion to a while loop
        if n == 0:
            return csum
        n, csum = n - 1, csum + n   # Update parameters instead of tail recursion
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal