iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Software Development

30 天的 Functional Programming 之旅 系列

「30 天的 Functional Programming 之旅」將用 JavaScript 帶領大家逐步探索 Functional Programming 的世界,系列內容結合《Grokking Simplicity》與《Mostly Adequate Guide》和其他網路資源,從程式中的三大元素 Action、Calculation、Data 出發,認識不可變性的價值,進而學習函數組合、柯里化、Functor、Monad、Applicative 等核心模式。希望透過這段旅程,不僅讓大家認識 FP 的工具,更能體會其中的設計哲學,並在日常開發中找到重構與思考程式的新角度。

鐵人鍊成 | 共 30 篇文章 | 6 人訂閱 訂閱系列文 RSS系列文
DAY 21

[Day 21] Monad 入門 (1):撫平巢狀的洋蔥

前言 在過去幾篇文章中,我們認識了 Functor 這個 FP 工具,透過 .map,我們學會了如何在一個「容器」或「上下文 (context)」內,對值進行...

2025-10-05 ‧ 由 Monica 分享
DAY 22

[Day 22] Monad 入門 (2):核心概念與定律

前言 在上一篇文章中,我們學會了 Monad 的實用工具 chain,它透過結合 map 和 join 來解決巢狀容器問題,讓我們的函數組合保持流暢。今天會再...

2025-10-06 ‧ 由 Monica 分享
DAY 23

[Day 23] Applicative Functor (1):應用被包裹的函數

前言 在前面的文章中,我們認識了 Functor 和 Monad。Functor 透過 map 方法,讓我們能將一個普通的函數應用到被包裹在 context(...

2025-10-07 ‧ 由 Monica 分享
DAY 24

[Day 24] Applicative Functor (2):定律與應用範例

前言 昨天認識了什麼是 Applicative,今天會再介紹 Applicative 要遵守的定律,以及更多應用範例~ Applicative 的定律 就像...

2025-10-08 ‧ 由 Monica 分享
DAY 25

[Day 25] 再探 Monoid

前言 前面幾篇文章介紹了一些 FP 世界中的容器工具如 Functor、Monad、Applicative 等,其實還有很多沒有介紹到,例如 Reader、S...

2025-10-09 ‧ 由 Monica 分享
DAY 26

[Day 26] Lazy Evaluation 和 Generator Function

前言 跳脫 FP 的容器世界,今天想輕鬆一點,今天想介紹的是 Generator function,而 Generator function 為什麼會和 FP...

2025-10-10 ‧ 由 Monica 分享
DAY 27

[Day 27] RxJS 簡介 (1)

前言 今天要介紹的是我期待已久的 RxJS! RxJS 博大精深,甚至可以用一整個鐵人賽系列文來介紹(在此推推 30 天精通 RxJS和打通 RxJS 任督二...

2025-10-11 ‧ 由 Monica 分享
DAY 28

[Day 28] RxJS 簡介 (2)

前言 今天會接續昨天的 RxJS 介紹,繼續介紹 flatten operator,以及如何自己打造簡易 Observable,最後以 FP 視角再次檢視 O...

2025-10-12 ‧ 由 Monica 分享
DAY 29

[Day 29] 我們可能見過的 Functional Programming

前言 FP 系列的最後,想進一步看看,在軟體設計的世界裡,到底哪些東西和 FP 相關,哪些技術和工具其實背後借鏡了 FP 的原理,藉此將 FP 的抽象概念與實...

2025-10-13 ‧ 由 Monica 分享
DAY 30

[Day 30] 系列文總結與完賽心得

這是第二次參與鐵人賽,還是很感動終於完成! 系列文總結 先來回顧一下此次系列文包含的主題: [Day 01] 系列文動機與大綱 Functional...

2025-10-14 ‧ 由 Monica 分享