iT邦幫忙

functional programming相關文章
共有 288 則文章
鐵人賽 Modern Web DAY 6

技術 蜜糖毒藥:再見Functional Programming

一個人的蜜糖,可能是另一個人的毒藥 Lucretius 正如第二天所說的,宣告式典範(declarative paradigm)與命令式典範(imperat...

鐵人賽 Software Development DAY 16

技術 重構 Resource Layer - Fold : 在雙軌的盡頭處理 Error - Day16

在Service Layer 與 Repo Layer的處理過程中,會利用到 map, flatMap, zip 來 compose Either,最後通常會...

鐵人賽 Modern Web DAY 2

技術 信仰:初見Funtional Programming

我的心、我這一生都在追求一個東西:一個無以名狀的東西。 André Breton 前言 某種程度上,Javascript ES6(JS)提供了一種多典範多風...

鐵人賽 Software Development DAY 6

技術 如何不拋出例外的處理錯誤 (1)

我們在 Day 2 - 什麼是 Funcational Programming? 有提到拋出 exception 是某種 side effect ,倘若 exc...

鐵人賽 Software Development DAY 2

技術 什麼是 Functional Programming?

什麼是 Functional Programming? 簡言之就是沒有 side effect (副作用) 的 function,也就是一種純粹無暇的沒有副作用...

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

技術 [Haskell 從入門到放棄] Day 11 - 繼續談 higher order function

Fold 所謂 Fold 就是來簡化我們在遞迴中很常遇到的模式,匹配 (x:xs) 將 x 取出來後繼續將 xs 放入 function 運算 直到 [] 。通...

鐵人賽 Software Development DAY 12

技術 純粹的 functional 狀態 (1)

這幾天會使用 隨機數字產生器 來介紹 functional programming 如何操作狀態變更,我們就能學會如何讓那些有狀態的程式純粹化,進而符合 Ref...

鐵人賽 Software Development DAY 26

技術 Monads (1)

Monads - flatMap 和 unit 的抽象介面 在介紹 Monad 之前,先聊聊一個之前有在 Option 和 Parser 下用到的 functi...

鐵人賽 Software Development DAY 19

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

解析器就是個能把 JSON 或 XML 等字串轉為 list、 map 等資料結構, 而這幾天就要用 functional programming 的概念來設計...

鐵人賽 Software Development DAY 23

技術 Monoids (2)

用 monoids folding List Monoid 跟 List 有著相當緊密的關係,Day 4 和 Day5 的 List 中我們有用到 2 個 fu...

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

技術 [Should I use fp-ts?] Day 08 - fp-ts: Option map

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

鐵人賽 Software Development DAY 3

技術 Functional 資料結構 (1)

Day 3 - Functional 資料結構 (1) functional 資料結構 (functional data structure) 就是只使用 pu...

鐵人賽 Software Development DAY 5

技術 Functional 資料結構 (3)

更多的練習 Exercise D5-1 前一天 的 foldRight 是從 List 的最右邊往左推進,想當然爾,當然也有從左邊開始的 foldLeft, 也...

鐵人賽 Software Development DAY 8

技術 如何不拋出例外的處理錯誤 (3)

該怎麼讓舊的 function 兼容 Option (Either 也適用) 也許你用的 function 在很多地方都用到,改變原 function 的定義影...

鐵人賽 Software Development DAY 18

技術 Purely Function 的平行化 (4)

API 的代數性質 在 API 實作過程中,我們都是先把 function 的型態定義好,然後在隨著型態去實現它,例如 map 就是用了 map2 和 unit...

鐵人賽 Software Development DAY 10

技術 Strictness 和 Laziness (2)

現在來看一下如何解決一下 昨天 所提到的問題:將所有轉換一次處理,避免建立暫時用的 List。 LazyList LazyList 就是 List lazine...

鐵人賽 Software Development DAY 27

技術 Monads (2)

Monads 定律 1 - 結合律 (Associative Law) 假設我們有個 Item 和 Order 類別, case class Item(name...

鐵人賽 Software Development DAY 24

技術 Monoids (3)

Monoid 的同態 (homomorphisms) 直接看例子吧! "foo".length + "bar".leng...

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

技術 [Should I use fp-ts?] Day 11 - fp-ts: Option match, matchW

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

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

技術 [Should I use fp-ts?] Day 01 - 前言

筆者背景 大家好,我是 Tuhacrt (吐哈庫)。 我是今年(2023)六月才剛成為軟體工程師的菜鳥工程師,有一次跟前輩在 debug 的途中討論到 Func...

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

技術 [Should I use fp-ts?] Day 03 - pure function

在本系列文中,所有的程式碼以及測試都可以在 should-i-use-fp-ts 找到,今日的範例放在 src/day-03。本系列文的目的是讓讀者 和筆者 能...

鐵人賽 Software Development DAY 4

技術 Functional 資料結構 (2)

在 Functional 資料結構中的資料分享 當資料為不可變的情況下,可以的話我們會希望能夠重用所有資料,盡量減少複製情況發生,就稱做 資料分享 (data...

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

技術 [Haskell 從入門到放棄] Day 30 - 開始也是結束

終於寫到最後一天了,今天就輕鬆一點吧xD。 首先感謝所有讀者,在開賽前就有心理準備這個題材本來就是屬於比較冷門領域所以應該沒什麼人關注,本來以為可能完全沒有回饋...

鐵人賽 Software Development DAY 1

技術 混天數用的前言

用 Scala 3 寫的 Functional Programming 會長什麼樣子? Functional Programming,三大設計範示之一,其開發思...

鐵人賽 Software Development DAY 7

技術 如何不拋出例外的處理錯誤 (2)

Option 資料型態 enum Option[+A]: case Some(get: A) case None 昨天 那些瞎 g8 問題的解法就是讓...

鐵人賽 Software Development DAY 29

技術 Applicative Functors (2)

Monad 和 Applicative Functors 的差異 假設我們用 Option 來從 Map 資料中找東西,2 個查詢彼此獨立,通常可以輕鬆的用 m...

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

技術 [Should I use fp-ts?] Day 12 - fp-ts: Option alt

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

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

技術 [Should I use fp-ts?] Day 06 - pipe and flow

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

鐵人賽 Software Development DAY 15

技術 Purely Function 的平行化 (1)

拜 摩爾定律 所賜,現在的計算資源越來越強,有越來越多的程式可以分散地、平行化 (parallelism) 的運行,平行運行下的程式勢必會遇到諸如 race c...

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

技術 [Should I use fp-ts?] Day 07 - fp-ts: Option 型別以及建構子

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