2016-04-07 11 views
1

私は、ECMAScript6(ES6)がTCOを実行できることを読んでいます。私の質問は、我々がES6クラスでTCOを得ることが知られているかどうかではありませんES6クラスの再帰メソッドはTCO(テールコール最適化)を利用しますか?

const tcoFn = (acc) => { 
    if (acc > 10) { 
    return acc 
    } else { 
    return tcoFn(acc + 1) 
    } 
} 

(...ない実用的な目的で、粗例):私はこれのように立証見たことがありますか?だから、

class TCOish { 
    tcoMethod(acc) { 
    if (acc > 10) { 
     return acc 
    } else { 
     return tcoMethod(acc + 1) 
    } 
    } 
} // End class definition 

Interwebs上のいくつか検索した後、これは私には不明のままで、誰かが私を指すことができるという決定的な答えがある場合、私は疑問に思って?

また、これはブラウザまたは蒸散について気にしないNodeアプリケーションで使用されます。

ありがとうございます。

+1

ノードに実装されていません – Amit

+3

https://kangax.github.io/compat-table/es6/ – Andy

+0

この最適化のテストは簡単です。膨大な量の再帰で関数を実行するだけで、 "再帰が多すぎる"というエラーが発生した場合は、そうではありません。 –

答えて

0

アンディが上記のコメントで提供したlinkから、答えはまだないようです。これは、TCO分野で少し前進しているWebKitを除いて、一般的に真実であるようです。注目すべき点は、この「回答」の価値は、TCOサポートが成長するにつれて低下することです。

関連する問題