iT邦幫忙

functional programming相關文章
共有 288 則文章
鐵人賽 Software Development DAY 16
Haskell 從入門到放棄 系列 第 16

技術 [Haskell 從入門到放棄] Day 16 - Algebraic Data Types (3)

Recursive Data Type 我們除了裡用 product 或者 sum 來組成的我們 type 以外,還可以使用 recursive 的概念來定義...

鐵人賽 Software Development DAY 22

技術 Monoids (1)

從今天開始要進入 Part 3 啦!Part 3 主要是 functional programming 下更高層的抽象,也就是說把之前各種主題下常看到的模式概念...

鐵人賽 Software Development DAY 14
Haskell 從入門到放棄 系列 第 14

技術 [Haskell 從入門到放棄] Day 14 - Algebraic Data Types (1)

昨天我們說到可以使用 tuple (Double, Double, Double) 用三個double來表示三角形的三邊長。 但我們使用 tuple 來描述的話...

鐵人賽 Software Development DAY 15
Should I use fp-ts 系列 第 15

技術 [Should I use fp-ts?] Day 15 - fp-ts: Option bindTo

在本系列文中,所有的程式碼以及測試都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-15 並且有習題和測試可以讓大家練習。...

鐵人賽 Software Development DAY 23
Should I use fp-ts 系列 第 23

技術 [Should I use fp-ts?] Day 23 - fp-ts Array

在本系列文中,所有的程式碼都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-23 並且有測試可以讓大家練習。 Array 平...

鐵人賽 Software Development DAY 23
Haskell 從入門到放棄 系列 第 23

技術 [Haskell 從入門到放棄] Day 23 - Monad (1)

在看 monad 相關的文章時不時想到一個剛開始學 FP 時聽過的笑話 「a monad is just a monoid in the category of...

鐵人賽 Software Development DAY 17
Haskell 從入門到放棄 系列 第 17

技術 [Haskell 從入門到放棄] Day 17 - Typeclass

Typeclass 讓我們重新回顧一下 typeclass 是什麼,它類似於其他語言中的介面(interface)。Typeclass 提供了一種定義一組類別所...

鐵人賽 Software Development DAY 21

技術 能自由組合的解析器 Library (3)

如何處理有上下文關係的解析 想像一下若我們要解析開頭為數字,然後後面為 0 到 n 個字元 'a',以下的字串皆滿足此需求:0、1a、2aa、4aaaa, 但...

鐵人賽 Software Development DAY 25
Haskell 從入門到放棄 系列 第 25

技術 [Haskell 從入門到放棄] Day 25 - Monad (3)

List Monad 在講 list monad 前我們先回憶一下 applicatives,我們知道 <*> 是可以把一個在 context 裡的...

鐵人賽 Software Development DAY 21
Haskell 從入門到放棄 系列 第 21

技術 [Haskell 從入門到放棄] Day 21 - Monoid (1)

Monoid 我們先來看一下幾個 expression (4 * 2) * 1 4 * (2 * 1) ([1] ++ [2,3]) ++ [] [] ++...

鐵人賽 Software Development DAY 22
Haskell 從入門到放棄 系列 第 22

技術 [Haskell 從入門到放棄] Day 22 - Monoid (2)

Maybe 在 Haskell 中 Maybe a 也是能具有 Monoid 特性的。 instance Monoid a => Monoid (Mayb...

鐵人賽 Software Development DAY 21
Should I use fp-ts 系列 第 21

技術 [Should I use fp-ts?] Day 21 - fp-ts Either trycatch 2

在本系列文中,所有的程式碼都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-21 並且有測試可以讓大家練習。 Either...

鐵人賽 Software Development DAY 24
Haskell 從入門到放棄 系列 第 24

技術 [Haskell 從入門到放棄] Day 24 - Monad (2)

I/O Monad 雖然 Haskell 是一個純粹的 FP 語言,這意味著它的函數更接近數學意義上的「函數」,也就是我們所說的 pure function 。...

鐵人賽 Software Development DAY 28
Haskell 從入門到放棄 系列 第 28

技術 [Haskell 從入門到放棄] Day 27 - Monad (5)

Writer Monad 不知道讀者有沒有想過,如果今天我想要把每一步 monadic 操作的過程都有 log 紀錄方便我們 debug 的話要怎麼做?(用 p...

鐵人賽 Software Development DAY 16

技術 Purely Function 的平行化 (2)

統整一下 Par 容器型態的 function 經過 昨天 的推導,我們的平行化 library 中定義了 Par[A] 容器型態,然後核心 API 中包含了以...

鐵人賽 Software Development DAY 19
Haskell 從入門到放棄 系列 第 19

技術 [Haskell 從入門到放棄] Day 19 - Applicative

繼續談 Functor fmap (*2) (+100) 1 看到這樣的程式碼你能想的到結果是什麼嗎?好像跟我們平常在 map 時的操作不太一樣,感覺好像少了...

鐵人賽 Software Development DAY 18
Haskell 從入門到放棄 系列 第 18

技術 [Haskell 從入門到放棄] Day 18 - Functor

Functor 用最簡單的一句話來解釋 functor 就是指可以被 map 的東西像是 List ,而在 Haskell functor 就只是 typecl...

鐵人賽 Software Development DAY 15
Haskell 從入門到放棄 系列 第 15

技術 [Haskell 從入門到放棄] Day 15 - Algebraic Data Types (2)

Sum Type 我們先來看一下 Bool 在 Haskell 是如何被定義的 data Bool = False | True deriving (Read...