再帰可能な回数の上限を変更する

sys.setrecursionlimitで再帰可能な回数の上限を変更できるのか。知らなかった。

>>> import sys
>>> sys.setrecursionlimit(100000)
>>> def sum2(lst):
...     if lst:
...         return lambda :lst[0]+sum2(lst[1:])()
...     else:
...         return lambda :0
...
>>> sum2(range(10000))
<function <lambda> at 0x00CCDEB0>
>>> _()
49995000

おもしれー。