Python 的尾递归优化问题?

除了手写 while.. 已经领教过了, 而且代码也不舒服

前面在网上搜到了一个方案, 用装饰器来封装函数 http://calebmadrigal.com/tail-call-optimization-in-python/

@tail_call_optimized
def f():
  pass

但是实际用下来栈还是要爆, 不知道是哪边出的问题?

初问题的代码在这边: https://github.com/Cirru/parser.py/blob/4df86cbb2d743504359d62b716ff09c688a05834/cirru_parser/parser.py#L227

还是说调用一复杂, 上边尾递归优化的脚本就失效了吗?

6 comments