在學習js時,遞迴這塊內容是挺雜亂的,所以據此我給大家整理了關於遞歸的相關內容,文章透過案例代碼介紹的較為詳細,會對大家的學習有一定的幫助,在文章開始我先介紹了遞歸的基礎內容,讓大家有個知識概念,這樣後面的學習不會一頭霧水,後面列舉了使用遞歸的例子。 apache php mysql
前言
#遞迴效能差是沒爭議的事實,如果你覺得for 循環比較好,沒必要學遞歸,那看到這裡你可以不用看了。這篇文章要展示的大部分程式碼,只是學習目的,我不建議在生產環境中使用。但如果你對函數式程式設計有興趣,想深入理解一些核心概念,你應該讀下去。
今年年初我開始學 Haskell 的時候,我被函數式程式碼的優雅和簡潔俘虜了。程式碼居然還能這樣寫!用指令式程式碼要寫一堆的程序,用遞歸幾行就解決了。這篇文章裡,我會把我在 Haskell 裡面看到的遞歸函數翻譯成 JS 和 Python,並且盡量每一步解釋。最後我會嘗試解決遞歸爆棧(Stack Overflow)的問題。
遞歸基礎
#我從 Python 程式碼開始,然後展示 JS 實作。
很多解釋遞歸的教程是從解釋斐波那契數列開始的,我覺得這樣做是在用一個已經複雜的概念去解釋另一個複雜的概念,沒有必要。我們還是從簡單的程式碼開始吧。
運行這段 Python 程式碼:
def foo(): foo() foo()
當然會報錯。
以上是系統整理js遞歸函數的應用及對遞歸爆棧問題的解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!