本系列文章,內容以探討 Kyle Simpson. Functional-Light JavaScript 一書內容為主
目標:是讀懂 FP,能用 code 與人交流,而不是被壓在 FP 的術語大山下喘不過氣。
提醒:本文中各種的 FP 小工具,僅為邏輯演示,實際上並不適合在 production 中使用,建議使用 FP library。
原文地址:Functional-Light JavaScript
今天研究的主題是 Recursion 遞迴,我得自首:我承認遞迴是很強大的技巧,但我不太喜歡用 – 強大但令人困惑,我把它跟正則表達一起擺在技術債的最底部,總是一直沒去碰。
但該來的還是會來,沒想到研究個 FP ,竟然又讓我碰到遞迴,上次看到是在學校學演算法的時候…,今天就來還技術債吧。
定義
「為了理解遞迴,則必須首先理解遞迴。」[^1]
回憶一下課堂上關於遞迴的定義:指 function 執行過程反覆呼叫自身,持續到基本條件滿足時。三個重點:
基本條件,滿足基本條件,遞迴停止,也可說是終止條件。
若未滿足,呼叫自己。
每一次都逐漸往基本條件的方向收斂。
一個遞迴演算法,必須要有一個基本條件,否則会一直遞迴下去,直到 stack overflow。
转载请注明:XAMPP中文组官网 » Good Morning, Functional JS (Day 25, Recursion 遞迴)