93 votes

Sont tout les moteurs Javascript queue appel optimisé?

J'ai une queue récursive de l'algorithme de pathfinding que j'ai implémenté en Javascript et je voudrais savoir si toutes (tous?) les navigateurs ne peut pas faire de dépassement de pile exceptions.

48voto

Tim Sylvester Points 14047

L'ECMAScript 4 spec a été à l'origine d'ajouter le support pour le coût total de possession, mais il a été abandonné.

http://lambda-the-ultimate.org/node/3047

Autant que je sache, aucun largement-disponible implémentations de JS, actuellement, n'automatique coût total de possession. Cela peut être utile pour vous, si:

http://www.paulbarry.com/articles/2009/08/30/tail-call-optimization

Essentiellement, à l'aide de l'accumulateur modèle accomplir le même effet.

26voto

Mr Speaker Points 860

Pas la joie pour le moment, mais heureusement, la bonne queue appels sont prévus pour l'Harmonie (ECMAScript version 6) http://wiki.ecmascript.org/doku.php?id=harmony:proper_tail_calls

12voto

Hank Gay Points 36173

À peu près chaque navigateur que vous rencontrez vous barf sur "trop de récursivité". Voici une entrée dans le V8 de bug tracker , qui sera probablement intéressant à lire.

Si c'est simple d'auto-récursivité, c'est probablement la peine de l'effort d'utiliser explicite itération plutôt que d'espérer pour la queue-appel d'élimination.

3voto

Santosh Points 860

La queue d'appel d'optimisation est maintenant disponible dans LispyScript qui est compilé en javascript. Vous pouvez en lire plus à ce sujet ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X