Python은 꼬리 재귀를 최적화합니까?
Python은 창시자인 Guido van Rossum이 명시적으로 언급한 것처럼 꼬리 재귀를 최적화하지 않습니다. Rossum은 꼬리 재귀의 잠재적인 최적화보다 적절한 추적을 우선시합니다.
Python이 꼬리 재귀를 최적화하지 않는 이유
Rossum은 정확한 추적을 생성하는 기능을 유지하는 것이 더 중요하다고 믿습니다. 꼬리 재귀를 최적화하는 것보다. 역추적은 코드 실행 방법을 디버깅하고 이해하는 데 필수적입니다.
수동 꼬리 재귀 제거
Python에는 꼬리 재귀 최적화가 부족함에도 불구하고 변환을 사용하여 수동으로 재귀를 제거할 수 있습니다. . 재귀 함수를 while 루프로 변환하고 꼬리 재귀를 사용하는 대신 루프 내의 매개변수를 업데이트합니다.
예: 꼬리 재귀 제거
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
위 내용은 Python은 꼬리 재귀를 최적화합니까? 그렇지 않다면 그 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!