在python中使用重击、蹦床和连续传球

2024-10-03 00:22:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我从这个博客Sing Me A Song of Stack Overflow: A Musical Tail Call Optimization了解了尾部调用优化(TCO)的概念。你知道吗

进入这个概念(或“特性”或“优化技术”),我知道在python中使用TCO并不是一种pythonic方式,正如Guido解释的那样:

http://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.htmlhttp://neopythonic.blogspot.com/2009/04/final-words-on-tail-calls.html

进一步的检查发现了詹姆斯·陶伯的一个博客,里面讨论了重击、蹦床和连续传球。你知道吗

James Tauber展示了如何使用Thunks、Trampolines和Continuation传递来解决递归函数的堆栈调用问题,但是解释起来有点难掌握。你知道吗

下面是我想澄清的一些问题:

  1. 这里有人能解释一下这些概念吗?你知道吗
  2. 这个概念是试图在python中实现TCO,还是与TCO不同?你知道吗
  3. 由于Guido将TCO称为not a pythonic way,因为TCO没有给出正确的回溯,Thunks, Trampoline and Continuation passing的概念是否满足保留回溯的要求?你知道吗

Tags: comhttp概念songhtmlpythonictailme