Rumah > pembangunan bahagian belakang > Tutorial Python > Adakah Python Mengoptimumkan Rekursi Ekor, dan Jika Tidak, Mengapa?

Adakah Python Mengoptimumkan Rekursi Ekor, dan Jika Tidak, Mengapa?

Barbara Streisand
Lepaskan: 2024-12-03 21:18:12
asal
442 orang telah melayarinya

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

Adakah Python Mengoptimumkan Rekursi Ekor?

Python tidak mengoptimumkan rekursi ekor, seperti yang dinyatakan secara eksplisit oleh penciptanya, Guido van Rossum. Rossum mengutamakan pengesanan semula yang betul berbanding potensi pengoptimuman pengulangan ekor.

Mengapa Python Tidak Mengoptimumkan Rekursi Ekor

Rossum percaya bahawa mengekalkan keupayaan untuk menjana jejak balik yang tepat adalah lebih penting daripada mengoptimumkan rekursi ekor. Traceback adalah penting untuk nyahpepijat dan memahami cara kod dilaksanakan.

Penghapusan Rekursi Ekor Manual

Walaupun Python kekurangan pengoptimuman rekursi ekor, anda boleh menghapuskan rekursi secara manual menggunakan transformasi . Tukar fungsi rekursif kepada gelung sementara dan kemas kini parameter dalam gelung dan bukannya menggunakan rekursi ekor.

Contoh: Penghapusan Rekursi Ekor

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
Salin selepas log masuk

Atas ialah kandungan terperinci Adakah Python Mengoptimumkan Rekursi Ekor, dan Jika Tidak, Mengapa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan