Functional Programming,三大設計範示之一,其開發思想是程式可用一系列數學函數或表達式的組合來表示,是程式面向數學的底層抽象,將計算過程描述為表達式,Functional Programming 程式可以看起來很簡單,也能像抽象畫一樣難以理解,
它能應用在科學計算、數據處理(Java 的迭代集合)、統計分析等領域,這些領域的程式往往比較容易用數學表達式來表示;但過度地使用 Functional Programming 會導致程式可讀性變差,凡事剛好就好。
而 Functional Programming In Scala 這本書就是教您如何用 Scala 寫 Functional Programming,自從 2016 年購入小紅書 Functional Programming In Scala 後一直沒有機會看完,我熟悉 Scala 2,而 Scala 3 在 2021 年 5 月推出,且 Scala 3 有著相當大幅度的結構調整,藉這個機會把 Functional Programming In Scala 和 Scala 3 相關的變化一起學起來。
這本書主要有 4 個部份,
Part 1:什麼是 Funcational Prgramming 以及其核心概念,還有 pure 資料結構、如何處理錯誤和如何處理狀態等等。
Part 2:Functional Design,可以看看跟常用的 Design Pattern 之間有什麼衝突。
Part 3:把 Part 1 跟 Part 2 中常用到的方法抽象出來,介紹那些 Functional Programming 中必學的介面。
Part 4:無法在工作中使用挺廢的啊,該怎麼用在工程師日常開發呢? (篇幅不夠寫不完 XD)
且也會有很多的 Exercise,答案會統一放在該篇文章的最底下,可以的話邊看邊練習吧!
這 30 天內會用我自己的話來詮釋 Functional Programming In Scala 一書的概念,中間會穿插有關 Scala 3 和 Scala 2 的變動之處,也會寫些跟 OOP、Design Pattern 概念的衝突之處,總之想到什麼寫什麼吧。