末尾再帰の復習
- 対策前
def func(x): if x == 1: return 1 else: return x * (x - 1) for cnt in range(1, 5): print func(cnt)
- 対策後
def func(x, a): if x == 1: return a else: return func(x - 1, x * a) def exec_func(x): return func(x, 1) for cnt in range(1, 5): print exec_func(cnt)
こんな感じ。多少回りくどくなるが。
あと、関数の意味がわかりにくくなるかも。
(都合により、実際には動かしていない。)