Использование гирлянд, батутов и продолжение прохождения в питоне - PullRequest
1 голос
/ 04 июля 2019

Я узнал о концепции Оптимизация вызовов в хвосте (TCO) из этого блога: Спой мне песню переполнения стека: Оптимизация музыкального вызова в хвосте .

Переходя к этой концепции (или «функции», или «технике оптимизации»), я узнал, что использование TCO в python не является питонским способом, как объясняет Гвидо:

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

Дальнейшая проверка привела к тому, что Джеймс Таубер обнаружил блог, в котором рассказывается о гусеницах, батутах и ​​продолжении проезда гусеницах, батутах и ​​продолжении, проходящих мимо Джеймса Таубера.

Джеймс Таубер показывает, как использование Thunks, Trampolines и Continuation для решения проблемы стекового вызова рекурсивных функций, но некоторые объяснения трудно понять.

Итак, вот некоторые из моих запросов, которые я хотел бы прояснить:

  1. Может ли кто-нибудь здесь дать понятное объяснение этим понятиям?
  2. эта концепция пытается реализовать TCO в python или она отличается от TCO?
  3. Поскольку Гвидо называет TCO not a pythonic way, поскольку TCO не обеспечивает надлежащего отслеживания, соответствует ли концепция Thunks, Trampoline and Continuation passing требованию сохраненияtracebacks?
...