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
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!