Python が末尾呼び出しの最適化をサポートしていないことは知っています。それは、以下で定義した階乗のような反復プロセスを伴う再帰的な手順が O(n) メモリを消費することを意味するのでしょうか、それとも遅延操作がないという事実は、スペースが O(1) になることを意味するのでしょうか?
def factorial(n, accum=1):
if n == 0:
return accum
else:
return factorial(n-1, accum * n)