0
我一直在閱讀了很多關於尾巴文章recursion.But我仍然不清楚的尾遞歸如何不使用堆棧空間。尾遞歸中的局部變量?
怎麼樣的局部變量和函數參數?它們也存儲在堆棧中。在尾遞歸的情況下會發生什麼?它與正常遞歸有什麼不同?
「尾調用[尾遞歸]是打扮成一個呼叫的一種跳轉的」
這到底是什麼意思?
我一直在閱讀了很多關於尾巴文章recursion.But我仍然不清楚的尾遞歸如何不使用堆棧空間。尾遞歸中的局部變量?
怎麼樣的局部變量和函數參數?它們也存儲在堆棧中。在尾遞歸的情況下會發生什麼?它與正常遞歸有什麼不同?
「尾調用[尾遞歸]是打扮成一個呼叫的一種跳轉的」
這到底是什麼意思?
局部變量都忘了。尾調用遞歸的關鍵在於它是函數中最後一件事情,所以在調用之後局部變量不會有問題。事實上,沒有「通話後」就是最後一次優化的全部內容。
編輯:關於報價:
在尾部調用優化的情況下,這兩者是等價的:
fn(x) {
....
fn(y);
}
和
fn(x) {
start:
....
x = y;
goto start;
}
尾調用是一種goto語句打扮成一個叫」 你能否更清楚這到底是什麼意思 –
@RahulKurup:編輯。 – Amadan