看板 Python 關於我們 聯絡資訊
※ 引述《yjc1 (..........)》之銘言: : ※ 引述《yjc1 (..........)》之銘言: : : http://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html : : 解釋了這麼多年來一直沒把 TRE / TCO(Tail Call Opimization) 加到 python 的原因 : : 這些理由可以理解但不太能接受… 連 lua 都 support TCO 了… : http://neopythonic.blogspot.com/2009/04/final-words-on-tail-calls.html : 再次確認 TCO 無望,但後半段提到的 TCO 替代方案頗有趣 : 看起來還是可以硬幹,只是很醜…… : 這些理由中唯一可以說服我的只有 guido 對 stack frame 不能被破壞的堅持, : 但個人感覺 stack frame 也沒那麼神聖不可侵犯。 : 而且連放到 -O 才開的方式都冠以「破壞一致性」的大義…就死心了吧… 這個之前提到過以Decorator 來做的TCO實作我覺得還OK。 有需要就加進去code裡, 使用起來完全不影響原本遞迴本身的形式優美明白、 同時使用者也能夠清楚分辨這部份有做過最佳化, 並針對自己的需要來使用。 http://code.activestate.com/recipes/474088/ http://lambda-the-ultimate.org/node/1331#comment-15165 python 語言本身就能讓使用者簡單擴展, 做起來也不難,我覺得不需要像C,Java那樣對語法性質爭議那麼多。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 154.20.36.163 ※ 編輯: Lucemia 來自: 154.20.36.163 (04/30 05:05) ※ 編輯: Lucemia 來自: 154.20.36.163 (04/30 05:07)
ykjiang:以 decorator 實做的話,我也贊成 04/30 10:12
ykjiang:使用者也能夠清楚分辨這部份有做過最佳化 04/30 10:13