2014-07-07 37 views
0

由於非尾遞歸調用使用像Java那樣的棧幀,我認爲你會非常謹慎地使用它,如果有的話。由於它是最重要的工具之一,這看起來嚴格限制。什麼時候我會在Scala中編寫一個非尾遞歸函數?

什麼時候可以使用非尾遞歸函數?另外,是否有計劃在未來消除內存限制?

+1

你的意思是非尾遞歸,但仍遞歸函數/方法?那些實際上經常出現。考慮使用遞歸來遍歷一棵樹,最簡單的做法是使用非尾遞歸遞歸。 – wingedsubmariner

+0

這裏幾乎相同的問題:http://stackoverflow.com/questions/24630692/how-usable-is-non-tail-recursive-recursion-in-scala –

回答

1

在Java相對安全的情況下,您所使用的數據集永遠不會變得很大,並且性能不是關鍵/應用程序的熱門路徑。另外,恕我直言,有些時候算法的非尾遞歸版本的清晰度比尾遞歸版本更好。

相關問題