發表於2024-11-09
√函數式編程已呈席捲之勢,趕緊開始學習一門函數式編程語言吧!
√Swift有作為一門函數式語言的先天優勢,iOS開發也可以函數式!
√objc是全球知名iOS教學網站,其精品圖書更是惠及無數開發者!
√Swifter一書作者喵神王巍組織翻譯objc係列精品圖書將相繼問世!
Swift是一門有著閤適的語言特性來適配函數式編程方法的優秀語言,對於國內的不少開發者來說,Swift可能是我們**次真正有機會去接觸和使用的一門函數式特性語言。Swift在語法上更加優雅靈活,語言本身也遵循瞭函數式的設計模式。本書是一本引領你進入Swift函數式編程世界的優秀讀物,它讓更多的中國開發者有機會接觸並瞭解Swift語言函數式的一麵,是廣大程序開發者不可多得的工具書。
王巍 (onevcat) ,《Swifter(第2版):100個Swift 2 開發必備Tip》作者,來自中國的一綫 iOS 開發者,畢業於清華大學。在校期間就開始進行 iOS 開發,擁有豐富的 Cocoa 和 Objective-C 開發經驗,另外他也活躍於使用 C# 的 Unity3D 遊戲開發界。曾經開發瞭《小熊推金幣》,《Pomo Do》等一係列優秀的 iOS 遊戲和應用。在業餘時間,王巍會在 OneV's Den 撰寫博客,分享他在開發中的一些心得和體會。另外,王巍還是翻譯項目 objc 中國的組織者和管理者,為中國的 Objective-C 社區的發展做齣瞭貢獻。同時,他也很喜歡為開源社區貢獻代碼,是著名的 Xcode 插件 VVDocumenter 的作者。現在王巍旅居日本,並就職於即時通訊軟件公司 Line,從事 iOS 開發工作,緻力於為全世界帶來更好體驗和功能的應用。
1 函數式Swift基礎 1
第1章 函數式思想 2
1.1 案例:Battleship 2
1.2 一等函數 7
1.3 類型驅動開發 11
1.4 注解 11
第2章 案例研究:封裝Core Image 12
2.1 濾鏡類型 12
2.2 構建濾鏡 13
模糊 13
顔色疊層 13
2.3 組閤濾鏡 15
復閤函數 16
2.4 理論背景:柯裏化 17
2.5 討論 18
第3章 Map、Filter和Reduce 20
3.1 泛型介紹 20
頂層函數和擴展 24
3.2 Filter 24
3.3 Reduce 26
3.4 實際運用 29
3.5 泛型和Any類型 31
3.6 注釋 32
第4章 可選值 34
4.1 案例研究:字典 34
4.2 玩轉可選值 37
可選值鏈 37
分支上的可選值 39
可選映射 40
再談可選綁定 41
4.3 為什麼使用可選值 43
第5章 案例研究:QuickCheck 47
5.1 構建QuickCheck 49
生成隨機數 49
實現check函數 51
5.2 縮小範圍 53
反復縮小範圍 54
5.3 隨機數組 55
5.4 使用QuickCheck 58
5.5 展望 59
第6章 不可變性的價值 60
6.1 變量和引用 60
6.2 值類型與引用類型 61
結構體與類:究竟是否可變 63
Objective-C 64
6.3 討論 65
第7章 枚舉 68
7.1 關於枚舉 68
7.2 關聯值 71
7.3 添加泛型 72
7.4 Swi?中的錯誤處理 74
7.5 再聊聊可選值 75
7.6 數據類型中的代數學 76
7.7 為什麼使用枚舉 78
第8章 純函數式數據結構 79
8.1 二叉搜索樹 79
8.2 基於字典樹的自動補全 85
字符串字典樹 91
8.3 討論 93
第9章 案例研究:圖錶 94
9.1 繪製正方形和圓形 94
9.2 核心數據結構 97
9.3 計算與繪製 99
9.4 創建視圖與PDF 105
9.5 額外的組閤算子 106
9.6 討論 107
II 函數式Swift進階 109
第10章 生成器和序列 110
10.1 生成器 110
10.2 序列 115
10.3 案例研究:遍曆二叉樹 118
10.4 案例研究:優化QuickCheck的範圍收縮 119
10.5 不止是Map與Filter 123
第11章 案例研究:解析器組閤算子 127
11.1 核心部分 127
11.2 選擇 131
11.3 順序解析 131
改進 133
11.4 便利組閤算子 138
11.5 一個簡單的計算器 143
第12章 案例研究:構建一個錶格應用 148
12.1 示例代碼 148
12.2 解析器 149
符號化 149
解析 153
12.3 求值器 158
12.4 GUI 163
數據源 163
代理 165
窗口控製器 165
第13章 函子、適用函子與單子 167
13.1 函子 167
13.2 適用函子 169
13.3 單子 172
13.4 討論 174
第14章 尾聲 176
14.1 拓展閱讀 177
14.2 結語 178
參考文獻 179
譯序
隨著程序語言的發展,軟件開發人員所熟知和使用的工具也在不斷進化。以Java和C++為代錶的麵嚮對象編程的編程方式在20世紀企業級的軟件開發中大放異彩,然而隨著軟件行業的不斷發展,開發者們發現瞭麵嚮對象範式的諸多不足。麵嚮對象強調的是將與某數據類型相關的一係列操作都封裝到該數據類型中去,因此,在數據類型中難免存在大量狀態,以及相關的行為。雖然這很符閤人類的邏輯直覺,但是當類型關係變得錯綜復雜時,類型中狀態的改變和類型之間彼此的繼承和依賴將使程序的復雜度呈幾何級數上升。
避免使用程序狀態和可變對象,是降低程序復雜度的有效方式之一,而這也正是函數式編程的精髓。函數式編程強調執行的結果,而非執行的過程。我們先構建一係列簡單卻具有一定功能的小函數,然後再將這些函數進行組裝以實現完整的邏輯和復雜的運算,這是函數式編程的基本思想。
正如上麵引言所述,Swift是一門有著閤適的語言特性來適配函數式編程方法的優秀語言。這個世界上最純粹的函數式編程語言非Haskell莫屬,但是由於我國程序開發的起步和走熱相對西方世界要晚一些,使用Haskell的開發者可謂寥寥無幾,因此Haskell在國內的影響力也十分有限。對國內的不少開發者,特彆是iOS/OSX的開發者來說,Swift可能是我們第一次真正有機會去接觸和使用的一門函數式特性語言。相比於很多已有的函數式編程語言,Swift在語法上更加優雅靈活,語言本身也遵循瞭函數式的設計模式。作為函數式編程的入門語言,可以說Swift是非常理想的選擇。而本書正是一本引領你進入Swift函數式編程世界的優秀讀物,讓更多的中國開發者有機會接觸並瞭解Swift語言函數式的一麵,正是我們翻譯本書的目的所在。
本書大緻上可以分為兩個部分。首先,在第1章至第9章中,我們會介紹Swift函數式編程特性的一些基本概念,包括高階函數的使用方法、不可變量的必要性、可選值的存在價值、枚舉在函數式編程中的意義,以及純函數式數據結構的優勢等內容。這些都是函數式編程中的基本概念,也構成瞭Swift函數式特性甚至是這門語言的基礎。當然,在這些概念講解中我們也穿插瞭不少研究案例,以幫助讀者真正理解這些基本概念,並對在何時使用它們以及使用它們為程序設計帶來的改善形成直觀印象。第二部分從第10章開始,相比於前麵的章節,這部分屬於本書的進階內容。我們將從構建最基本的生成器和序列開始,利用解析器組閤算子構建一個解析器庫,並最終實現一個相對復雜的公式解析器和函數式的錶格應用。這部分內容環環相扣,因為內容抽象度較高,所以理解起來也可能比較睏難。如果你在閱讀第12章時遇到麻煩,則強烈建議你下載對應的完整源碼進行研究,並且摺迴頭去再次閱讀第二部分的相關章。隨著你對各個函數式算子的深入理解,函數式編程的概念和思想將自然而然進入你的血液,這將豐富你的知識體係,並會對之後的開發工作大有裨益。
本書原版的三位作者都是富有經驗的函數式編程方法的使用者或教師,他們將自己對於函數式編程的理解和Swift中的相關特性進行瞭對應和總結,並將這些聯係揭示瞭齣來。而中文版的三位譯者花費瞭大量時間和精力,試圖將這些規律以更易於理解的組織方式和語言,帶給國內的開發者們。不過不論是原作者還是譯者,其實和各位讀者一樣,都隻不過是普通開發者中的一員,所以本書齣現謬漏可能在所難免。如果您在閱讀時發現瞭問題,可以給我們發郵件,或是在本書issue頁麵提齣,我們將及時研究並加以改進。
事不宜遲,現在就讓我們開始在函數式的世界中遨遊一番吧!
——陳聿菡杜欣王巍
函數式Swift 下載 mobi pdf epub txt 電子書 格式 2024
函數式Swift 下載 mobi epub pdf 電子書很好,很不錯,很喜歡,確實不錯。很便宜,很好。
評分看目錄很不錯,對關注新技術
評分單位在弄圖書角,書是同事推薦的,買著同事們一起看,可以一起學習,物流快,快遞贊,書沒有損壞,很滿意。技術大神們研究的不亦樂乎!
評分講的挺細的,有oc經驗很易懂,就是買來換個語法
評分這個書我看瞭一段時間瞭,我覺得作者寫的很真誠,正繼續看。
評分很不錯的一本書~
評分內容不錯,紙質很好,值得購買。
評分書還沒看,應該還不錯。
評分很不錯的書 還能參加活動120-20 工作需要 多讀書多學習
函數式Swift mobi epub pdf txt 電子書 格式下載 2024