2017-11-11 123 views
0

我在搜索ES6中的IsInTailPosition()函數的最終用戶文檔時沒有運氣。 language reference解釋了算法,但沒有提供關於如何使用此功能的敘述。這是一個有趣的功能,因爲它涉及到尾部呼叫優化(如果我理解正確的話)。有人可以解釋一下如何使用這個功能,理想情況下是一個例子。ES6中IsInTailPosition()的最終用戶文檔/說明Javascript

+0

你知道[tail call](https://en.wikipedia.org/wiki/Tail_call)是什麼嗎? – Bergi

+0

@Bergi是的,但隨時在您的答案中包含鏈接。請注意StackOverflow是一個問答,而不是論壇。我的問題是關於具體的功能 - 如果你直接前進並回答,那將是可取的。 –

回答

1

語言參考是一個規範,並不意味着最終用戶文檔。不需要任何敘述。

IsInTailPosition算法不是一個可用的功能是提供給最終用戶,無論如何,它是一個內部方法來確定語法元素是否在尾部位置,並且用於區分一個呼叫表達是否應該得到tail call優化與否。

+0

我知道參考是一個規範,只是提到它表明我的搜索是詳盡的。你的回答消除了這個問題,謝謝。這實際上是一個令人遺憾的功能是內部的。我想它可能被用來檢測用戶功能是否被尾調用,從而允許其工作相應地進行調整。 –

+0

我沒有看到你的意思是「*相應地調整工作*」?有資格進行尾部呼叫優化的要點在於,從您呼叫的位置不可觀察到。 – Bergi

+0

通過函數的名稱,而不知道它只是內部的,它似乎提供了一個用戶函數如何被調用的視圖。該功能的要點是克服尾部呼叫不能被稱爲用戶功能的事實。如果你所說的是對呼叫的洞察力是不可能的,那麼請考慮擴大你的答案,因爲這些信息是有價值的。 –