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 的工具,更能體會其中的設計哲學,並在日常開發中找到重構與思考程式的新角度。

參賽天數 24 天 | 共 24 篇文章 | 3 人訂閱 訂閱系列文 RSS系列文
DAY 11

[Day 11] 函數組合(Function Composition)

前言 今天要介紹的是函數組合(Function Composition)~在開始探索函數組合(Function Composition)的概念之前,先從一個生...

2025-09-25 ‧ 由 Monica 分享
DAY 12

[Day 12] Point-Free 是什麼?

前言 在上一篇文章中,我們介紹了「函數組合(Function Composition)」,透過把多個小函數拼接起來,我們能寫出更具模組化與表達力的程式。而今天...

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

[Day 13] 函數的語言:型別簽章(Type Signature)簡介

前言 在上一篇文章中,我們介紹了 const toSlug = pipe(trim, toLowerCase, replaceSpaces, removeEx...

2025-09-27 ‧ 由 Monica 分享
DAY 14

[Day 14] 初探容器 (Container)

前言 今天要介紹的是 Container (容器),這會是後續 Functor、Monad、Applicative 概念的基礎。 在之前的文章中,我們學習到...

2025-09-28 ‧ 由 Monica 分享
DAY 15

[Day 15] 初探 Monoid:組合的力量

前言 在上一篇初探容器的文章中,留下了一個問題:當面對一組值時,要如何找到一種通用的模式,能可靠地將它們組合為一? 在解答問題之前,先來看看一個更普遍的觀念—...

2025-09-29 ‧ 由 Monica 分享
DAY 16

[Day 16] Functor:操作容器內的值

前言 上一篇我們初步認識了 Monoid,學到「組合」其實是程式設計裡無處不在的基礎結構。 現在回到 Day 14 提過的容器,透過將值(value)包裝在一...

2025-09-30 ‧ 由 Monica 分享
DAY 17

[Day 17] Maybe Functor:處理空值

前言 上一篇文章介紹了 Functor:它是一個容器,包裹著一個值,並提供一個 map 方法,讓我們能可靠地對這個值套用函式,無論它究竟是什麼。但如果我們處理...

2025-10-01 ‧ 由 Monica 分享
DAY 18

[Day 18] Either Functor:處理錯誤

前言 在上一篇 Maybe Functor 的文章中,可以看到 Maybe 讓我們的程式不會因為 null 或 undefined 而出錯、管線斷裂,即使物件...

2025-10-02 ‧ 由 Monica 分享
DAY 19

[Day 19] IO:處理同步副作用

前言 在前幾天的文章中,我們學會如何用 Maybe 容器處理空值,用 Either 容器處理錯誤路徑,透過容器這種把值包起來的方式,我們可以打造可預測、可靠的...

2025-10-03 ‧ 由 Monica 分享
DAY 20

[Day 20] Task:處理非同步副作用

前言 昨天的文章中,我們認識了如何用 IO 這容器延後副作用的執行,掌握了 IO 的核心思想後,我們就可以將同樣的原則應用到一個更複雜、更常見的領域:非同步操...

2025-10-04 ‧ 由 Monica 分享