第十七屆 優選

software-development
30 天的 Functional Programming 之旅
Monica

系列文章

DAY 11

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

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

DAY 12

[Day 12] Point-Free 是什麼?

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

DAY 13

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

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

DAY 14

[Day 14] 初探容器 (Container)

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

DAY 15

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

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

DAY 16

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

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

DAY 17

[Day 17] Maybe Functor:處理空值

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

DAY 18

[Day 18] Either Functor:處理錯誤

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

DAY 19

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

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

DAY 20

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

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