iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

Functional Programming For Everyone 系列

這個系列文會分享一年來筆者學習 FP 的心路歷程與學習資源,希望可以幫助對 FP 有興趣的開發者減少學習曲線,並且推廣 FP 的好處,讓更多人使用 FP。

文章主要會用 JavaScript 跟 TypeScript. 可能使用跟講解到的函式庫會有 ramda, fp-ts 與 io-ts.

鐵人鍊成 | 共 30 篇文章 | 41 人訂閱 訂閱系列文 RSS系列文 團隊拒絕奴性的網友
DAY 21

Day 21 - Handle Side Effect I

在介紹本篇我們先來複習一下先前在 pure function 那章提過的一些名詞 Side Effect: 當呼叫函式時,此函式會改變外部物件的狀態,則稱這...

2021-10-06 ‧ 由 Jing.tech 分享
DAY 22

Day 22 - IO Monad

上一章節簡單的介紹如何處理 side effect 的其中一個方法 dependency injection,而本章要介紹第二個方法 IO Monad,但在這之...

2021-10-07 ‧ 由 Jing.tech 分享
DAY 23

Day 23 - Either Monad

到目前為止,我們介紹 Maybe Monad 其是專門處理無值情境以及 IO Monad 則是處理同步計算的 effect,例如 console.log, lo...

2021-10-08 ‧ 由 Jing.tech 分享
DAY 24

Day 24 - Travserable

在介紹 Task Monad 前,來介紹一個重要的概念, 想像一下,有一組陣列裡面的項目都是 userId,現在要將 userId 去做 http reques...

2021-10-09 ‧ 由 Jing.tech 分享
DAY 25

Day 25 - Reader Monad

今天來介紹 Reader Monad,其主要處理的就是 dependency injection, 痛點 說到 dependency injection 如果最...

2021-10-10 ‧ 由 Jing.tech 分享
DAY 26

Day 26 - State Monad I

還記得先前提到 Math.random 並非是純函式嗎,因為每次給定相同的輸入都會是不同的輸出回傳回來,那有什麼辦法可以讓它是回傳亂數,又可以是純函數呢? 沒錯...

2021-10-11 ‧ 由 Jing.tech 分享
DAY 27

Day 27 - State Monad II

在上一章,我們提到了如何用一般方法實作 PRNG 亂數生成器,本章將介紹 State Monad 以及改寫上一章的範例,廢話不多說讓我們看下去吧! Introd...

2021-10-12 ‧ 由 Jing.tech 分享
DAY 28

Day 28 - State Monad III

嗨大家好,真希望一天能有 48 小時,不然這主題都要分到四部曲了,沒錯,應該會有四部曲! 抱歉了! Applicative Functor 上次提到了 map...

2021-10-13 ‧ 由 Jing.tech 分享
DAY 29

Day 29 - State Monad IV

Review 由於 State 原本可以一篇寫完的,被我拖成四篇的關係,所以來回顧一下,哈哈哈哈哈哈 這是我們的前幾章實作的 State Monad const...

2021-10-14 ‧ 由 Jing.tech 分享
DAY 30

Day 30 - The Beginning

終於完賽了!!! 依稀記得在今年八月初的某一天,在夜深人靜的夜晚,滑者手機思考人生,剛好看到前幾年IT鐵人賽的文章,閃過想參加的念頭,就用 Google 查下一...

2021-10-15 ‧ 由 Jing.tech 分享