有本書買很久了,卻始終沒機會讀完,或許這是個機會讓自己讀完它!
Functional Programming In Scala 是用 Scala 2 寫的,剛好我也只熟悉 Scala 2,所以就讓我們一邊分享 FP 的同時 ,一邊用 Scala 3 改寫它們吧,順便看看 Scala 3 多了哪些酷東西!
LazyList 細部處理拆解 講進階用法之前,先來看一下 LazyList 是怎麼處理 LazyList(1, 2, 3, 4).map(_ + 10).fi...
這幾天會使用 隨機數字產生器 來介紹 functional programming 如何操作狀態變更,我們就能學會如何讓那些有狀態的程式純粹化,進而符合 Ref...
更多的練習 Exercise D13-1 用 RNG.nextInt 來產生非負的隨機數,範圍介於 0 <= r <= Int.maxValue。...
對最初的 rollDie function 有什麼影響 延續 昨天 最後設計的產生非負數且小於特定值的隨機數 nonNegativeLessThanViaFla...
拜 摩爾定律 所賜,現在的計算資源越來越強,有越來越多的程式可以分散地、平行化 (parallelism) 的運行,平行運行下的程式勢必會遇到諸如 race c...
統整一下 Par 容器型態的 function 經過 昨天 的推導,我們的平行化 library 中定義了 Par[A] 容器型態,然後核心 API 中包含了以...
持續精煉我們的核心 API 讓我們開始實作其他核心 API 吧!以下為完整程式: import java.util.concurrent.* object P...
API 的代數性質 在 API 實作過程中,我們都是先把 function 的型態定義好,然後在隨著型態去實現它,例如 map 就是用了 map2 和 unit...
解析器就是個能把 JSON 或 XML 等字串轉為 list、 map 等資料結構, 而這幾天就要用 functional programming 的概念來設計...
從重複辨識找到第一個正式定律 繼續 昨天 的定律推敲,首先來想一下如何辨識 0 到 n 次的字元 'a', def many[A](p: Parser[A]):...