問題タブ [trampolines]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
108 参照

python - トランポリンされたcpsバージョンのfib関数を高速化し、Pythonで相互再帰をサポートするには?

フィボナッチ関数の cps バージョンにトランポリンを実装しようとしました。しかし、高速化 (キャッシュを追加) して相互再帰をサポートすることはできません。

実装コード:

これが実行可能な例です。

数を実行するには遅すぎます40。が大きい場合、取得fibした最大再帰深度を超えました。nしかし、追加後lru_cacheは高速になります。iter トランポリン バージョンは、再帰の深さに問題がなく、非常に高速に実行されます。

他の人の作品は次のとおりです。

  1. サポート cps バージョン キャッシュ: https://davywybiral.blogspot.com/2008/11/trampolining-for-recursion.html
  2. 相互再帰のサポート: https://github.com/0x65/trampolineしかし、理解するにはハックすぎます。