「30 天的 Functional Programming 之旅」將用 JavaScript 帶領大家逐步探索 Functional Programming 的世界,系列內容結合《Grokking Simplicity》與《Mostly Adequate Guide》和其他網路資源,從程式中的三大元素 Action、Calculation、Data 出發,認識不可變性的價值,進而學習函數組合、柯里化、Functor、Monad、Applicative 等核心模式。希望透過這段旅程,不僅讓大家認識 FP 的工具,更能體會其中的設計哲學,並在日常開發中找到重構與思考程式的新角度。
嗨大家好!我是 Monica,第一天一樣來講講系列文動機與大綱,談談未來的內容規劃。 關於分享主題 再次嘗試鐵人賽,這次的主題其實之前就想寫了,覺得 Func...
前言 「函數式程式設計 (Functional Programming,簡稱 FP)」這個名詞應該大部分人都聽過,通常會看到類似這樣的定義:「FP 是一種使用...
前言:Actions、Calculations 與 Data 在上篇文章有提到,FP 的重點是要管理因副作用而產生的程式碼複雜性,而要如何管理副作用造成的意外...
前言 在上篇文章中,我們學會將程式碼分為 Actions、Calculations 與 Data 三類,並理解到 Calculations 是我們程式中穩定、...
前言 在上一篇文章中,有提到純函數 (Pure Function) 的優點是可預測、易於測試、可推理,雖然實際應用中無法將全部程式碼轉為純函數,但我們可以盡可...
前言 不知道大家平常開發的時候,有沒有遇過這種狀況?一個看似正常的函式,當你試圖幫它撰寫單元測試時,卻發現需要模擬 API 資料、偽造 DOM、處理全域狀態....
前言 上一篇提到如何抽取程式碼中的 Calculations 來重構一個複雜的函式,重構的原則是「最小化隱性輸入與輸出」,而今天要介紹的「分層設計(Strat...
前言 在上篇文章中,我們探討了如何透過分層設計(Stratified Design)來管理程式碼的複雜性。但如果我們能將程式中最核心的元素——「行為」本身——...
前言 延續昨天介紹的 forEach 函式,今天要來介紹 map 和 reduce 這兩個函數式程式設計的核心工具~ map:陣列的變形工廠 map 是函數式...
前言 今天要介紹的是 Currying~ 在日常的軟體開發中,我們可能都寫過這樣的函式:它可能接受四、五個,甚至更多的參數。而在許多不同的呼叫場景中,其中好幾...