首頁  >  文章  >  web前端  >  系統整理js遞歸函數的應用及對遞歸爆棧問題的解決

系統整理js遞歸函數的應用及對遞歸爆棧問題的解決

php是最好的语言
php是最好的语言原創
2018-08-02 16:53:072314瀏覽

在學習js時,遞迴這塊內容是挺雜亂的,所以據此我給大家整理了關於遞歸的相關內容,文章透過案例代碼介紹的較為詳細,會對大家的學習有一定的幫助,在文章開始我先介紹了遞歸的基礎內容,讓大家有個知識概念,這樣後面的學習不會一頭霧水,後面列舉了使用遞歸的例子。 apache php mysql

前言

#遞迴效能差是沒爭議的事實,如果你覺得for 循環比較好,沒必要學遞歸,那看到這裡你可以不用看了。這篇文章要展示的大部分程式碼,只是學習目的,我不建議在生產環境中使用。但如果你對函數式程式設計有興趣,想深入理解一些核心概念,你應該讀下去。

今年年初我開始學 Haskell 的時候,我被函數式程式碼的優雅和簡潔俘虜了。程式碼居然還能這樣寫!用指令式程式碼要寫一堆的程序,用遞歸幾行就解決了。這篇文章裡,我會把我在 Haskell 裡面看到的遞歸函數翻譯成 JS 和 Python,並且盡量每一步解釋。最後我會嘗試解決遞歸爆棧(Stack Overflow)的問題。

遞歸基礎

#我從 Python 程式碼開始,然後展示 JS 實作。

很多解釋遞歸的教程是從解釋斐波那契數列開始的,我覺得這樣做是在用一個已經複雜的概念去解釋另一個複雜的概念,沒有必要。我們還是從簡單的程式碼開始吧。

運行這段 Python 程式碼:

def foo():
 foo()

foo()

當然會報錯。

以上是系統整理js遞歸函數的應用及對遞歸爆棧問題的解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn