這個系列文會分享一年來筆者學習 FP 的心路歷程與學習資源,希望可以幫助對 FP 有興趣的開發者減少學習曲線,並且推廣 FP 的好處,讓更多人使用 FP。
文章主要會用 JavaScript 跟 TypeScript. 可能使用跟講解到的函式庫會有 ramda, fp-ts 與 io-ts.
在介紹本篇我們先來複習一下先前在 pure function 那章提過的一些名詞 Side Effect: 當呼叫函式時,此函式會改變外部物件的狀態,則稱這...
上一章節簡單的介紹如何處理 side effect 的其中一個方法 dependency injection,而本章要介紹第二個方法 IO Monad,但在這之...
到目前為止,我們介紹 Maybe Monad 其是專門處理無值情境以及 IO Monad 則是處理同步計算的 effect,例如 console.log, lo...
在介紹 Task Monad 前,來介紹一個重要的概念, 想像一下,有一組陣列裡面的項目都是 userId,現在要將 userId 去做 http reques...
今天來介紹 Reader Monad,其主要處理的就是 dependency injection, 痛點 說到 dependency injection 如果最...
還記得先前提到 Math.random 並非是純函式嗎,因為每次給定相同的輸入都會是不同的輸出回傳回來,那有什麼辦法可以讓它是回傳亂數,又可以是純函數呢? 沒錯...
在上一章,我們提到了如何用一般方法實作 PRNG 亂數生成器,本章將介紹 State Monad 以及改寫上一章的範例,廢話不多說讓我們看下去吧! Introd...
嗨大家好,真希望一天能有 48 小時,不然這主題都要分到四部曲了,沒錯,應該會有四部曲! 抱歉了! Applicative Functor 上次提到了 map...
Review 由於 State 原本可以一篇寫完的,被我拖成四篇的關係,所以來回顧一下,哈哈哈哈哈哈 這是我們的前幾章實作的 State Monad const...
終於完賽了!!! 依稀記得在今年八月初的某一天,在夜深人靜的夜晚,滑者手機思考人生,剛好看到前幾年IT鐵人賽的文章,閃過想參加的念頭,就用 Google 查下一...