F#語言程式設計

F#語言程式設計

F#語言程式設計,是一門全新的NET核心程式語言,它在函式式程式設計語言的基礎上融合了面向對象的思想,是開發未來NET套用特別是計算密集型和分散式系統的首選語言。

基本信息

內容簡介

F#語言程式設計F#語言程式設計

這是一門全新的NET核心程式語言,它在函式式程式設計語言的基礎上融合了面向對象的思想,是開發未來NET套用特別是計算密集型和分散式系統的首選語言。《F#語言程式設計》由淺入深、由具體到抽象地介紹了F#語言的基礎語法、編程範式和典型套用,同時提供了豐富的程式案例,能夠幫助讀者迅速掌握F#程式設計的基本方法和技巧。

《F#語言程式設計》適合作為高等院校教材,也可供專業開發人員學習參考。

圖書目錄

第1章 F#簡介1

1.1 函式式程式設計語言和F#1

1.2 第一個F#應用程式2

1.3 開發工具和環境4

1.3.1 F#編譯器4

1.3.2 Visual Studio IDE4

1.3.3 F#互動式控制台6

1.3.4 .NET Framework6

1.4 F#典型套用7

1.4.1 初等函式計算8

1.4.2 統計分析8

1.4.3 數列計算9

1.4.4 數學分析10

1.4.5 向量和矩陣計算11

1.4.6 組合最佳化算法12

1.5 控制台輸入輸出13

習題114

第2章 數值和類型16

2.1 基礎值類型16

2.1.1 布爾數16

2.1.2 整數16

2.1.3 實數18

2.1.4 字元和字元串20

2.2 複合類型21

2.2.1 元組22

2.2.2 記錄23

2.2.3 聯合24

2.3 可變類型和引用類型25

2.3.1 可變類型25

2.3.2 引用類型27

2.4 可選類型28

習題229

第3章 函式30

3.1 函式基礎30

3.1.1 函式定義30

3.1.2 形參和實參31

3.1.3 空參數和空返回值32

3.1.4 局部變數和全局變數34

3.2 更多調用方式35

3.2.1 參數前置與函式複合35

3.2.2 函式局部套用35

3.2.3 運算符作函式36

3.3 模式匹配37

3.3.1 模式匹配表達式37

3.3.2 匹配機制39

3.3.3 記錄、聯合和可選類型匹配40

3.4 遞歸函式41

3.5 調用CLR函式43

3.5.1 概述43

3.5.2 常用字元串函式44

3.6 程式實例研究——背包問題算法46

習題347

第4章 深入整數和實數運算49

4.1 數值比較49

4.2 整數位運算50

4.2.1 取補運算50

4.2.2 與、或、異或運算51

4.2.3 移位運算52

4.3 常用數學函式53

4.3.1 最大值和最小值54

4.3.2 絕對值和取整54

4.3.3 指數和對數函式54

4.3.4 三角函式55

4.4 數值轉換與解析56

4.4.1 基礎數值轉換56

4.4.2 文本轉換與解析58

4.5大數運算59

4.5.1 使用bigint59

4.5.2 使用bignum61

4.6 程式實例研究——表達式求值62

習題463

第5章 流程控制65

5.1 選擇結構65

5.2 循環結構67

5.2.1 while循環語句67

5.2.2 for循環語句68

5.2.3 循環遍歷語句69

5.2.4 使用範圍表達式71

5.3 異常處理72

5.3.1 錯誤和異常72

5.3.2 異常類型74

5.3.3 try-finally異常處理結構76

5.3.4 引發異常77

5.3.5 傳播異常79

5.4 程式實例研究——素因數分解80

習題581

第6章 數組、向量和矩陣83

6.1 數組83

6.1.1 數組的定義和使用83

6.1.2 Array類型及其預定義函式85

6.1.3 多維數組87

6.2 向量90

6.2.1 向量的定義和使用90

6.2.2 向量運算91

6.3 矩陣93

6.3.1 矩陣的定義與使用93

6.3.2 矩陣運算94

6.3.3 矩陣的行向量與列向量96

6.4 程式實例研究——最短路徑問題98

習題699

第7章 列表、集合和序列101

7.1 列表101

7.1.1 概述101

7.1.2 表連線操作102

7.1.3 表頭和表尾103

7.1.4 其他List預定義函式104

7.1.5 高階列表105

7.2 集合106

7.2.1 概述106

7.2.2 預定義集合操作107

7.3 序列109

7.3.1 序列的基本概念109

7.3.2 預定義序列操作111

7.3.3 序列創建表達式與延遲求值112

7.4 程式實例研究——全排列和冪集114

習題7115

第8章 高階函式117

8.1 函式作為“值”117

8.1.1 概述117

8.1.2 函式作為參數118

8.1.3 高階函式中的函式局部套用119

8.2匿名函式119

8.2.1 匿名函式表達式119

8.2.2 函式作為返回值121

8.3 序列上的高階函式123

8.3.1 測試和篩選124

8.3.2 疊代套用126

8.3.3 數值運算擴展128

8.3.4 卷疊129

8.3.5 展開131

8.3.6 序列函式的綜合運用132

8.4 程式實例研究——數據擬合133

習題8135

第9章 類和對象137

9.1 面向對象的基本概念137

9.2 使用輕量級對象——記錄和聯合138

9.3 類的定義和使用139

9.3.1 類的定義139

9.3.2 構造函式和對象初始化140

9.3.3 函式成員中的可選參數和數組型參數144

9.4 屬性和索引函式146

9.4.1 屬性146

9.4.2 索引函式148

9.5 成員訪問限制150

9.6 靜態成員和非靜態成員152

9.7 運算符重載154

9.8 .NET結構和枚舉156

9.8.1 使用結構類型156

9.8.2 使用枚舉類型157

9.9 程式實例研究——三角模糊數158

習題9160

第10章 繼承和擴展162

10.1 繼承162

10.1.1 類的繼承定義162

10.1.2 覆蓋基類成員164

10.1.3 基類與派生類的轉換165

10.2 多態性166

10.2.1 虛擬與重載166

10.2.2 虛擬屬性168

10.2.3 抽象成員和抽象類169

10.3 .NET基類Object170

10.3.1 使用Object對象170

10.3.2 重載ToString函式171

10.3.3 對象比較172

10.3.4 類型判斷與匹配173

10.4 類型擴展174

10.4.1 類級擴展174

10.4.2 對象級擴展176

10.5 程式實例研究——幾何圖形類型177

習題10180

第11章 接口182

11.1 接口的定義與實現182

11.2 接口與多繼承185

11.2.1 繼承多個接口185

11.2.2 混合繼承187

11.3 幾個常用.NET接口188

11.3.1 ICloneable接口189

11.3.2IComparable接口189

11.3.3 IDisposable接口190

11.4 接口擴展190

11.4.1 接口級擴展190

11.4.2 對象級擴展191

11.5 程式實例研究——票務接口與實現192

習題11195

第12章 泛型基礎197

12.1 泛型的基本概念197

12.1.1 一般類型的不足197

12.1.2 定義泛型類198

12.1.3 定義泛型函式200

12.2 泛型結構、記錄和聯合200

12.2.1 泛型結構201

12.2.2 泛型記錄201

12.2.3 泛型聯合202

12.3 泛型接口與泛型集合202

12.3.1 泛型接口202

12.3.2 泛型集合與遍歷204

12.3.3 .NET類庫中的泛型集合206

12.4 程式實例研究——備忘錄與高效算法209

習題12211

第13章 深入泛型技術213

13.1 類型參數的套用與限制213

13.1.1 使用多個類型參數213

13.1.2 操作“抽象型”對象214

13.1.3 類型限制214

13.2 泛型中的繼承221

13.2.1 開放類型和封閉類型221

13.2.2 泛型繼承規則221

13.3 泛型函式的高級套用223

13.3.1 泛型函式中的類型限制223

13.3.2 隱式泛型函式224

13.3.3 靜態解析的類型參數225

13.3.4 內聯泛型函式225

13.4 程式實例研究——抽象代數結構與算法227

習題13230

第14章 代碼組織和管理232

14.1 代碼組織結構232

14.1.1 模組232

14.1.2 命名空間233

14.1.3 使用簡稱235

14.2 程式集235

14.2.1 執行檔235

14.2.2動態程式庫檔案237

14.2.3 程式集中的訪問限制238

14.3 代碼注釋238

14.3.1 單行和多行注釋238

14.3.2 XML注釋文檔239

14.4 條件編譯241

14.5 程式實例研究——機率分布函式館244

習題14248

第15章 Windows窗體套用基礎249

15.1 Windows窗體類Form249

15.1.1 顯示Windows窗體249

15.1.2 設定窗體屬性250

15.2 常用窗體控制項252

15.2.1 Control、容器控制項和子控制項252

15.2.2 標籤、文本框和數值框253

15.2.3 按鈕、單選框和複選框255

15.2.4 組合框和列表框256

15.3 回響控制項事件257

15.3.1 事件基礎257

15.3.2 常用控制項事件259

15.4 自定義窗體261

15.5 使用Visual Studio窗體設計器263

15.6 程式實例研究——用戶註冊窗體266

習題15269

第16章 Windows窗體套用進階271

16.1 更多Windows控制項271

16.1.1 時間和日期控制項271

16.1.2 滑塊、進度條和滾動條272

16.1.3 列表視圖和樹狀視圖274

16.1.4 工具列、選單欄和狀態欄275

16.1.5 為控制項顯示圖像277

16.2 繪圖278

16.2.1 GDI+基礎278

16.2.2 繪製各種線條和形狀280

16.2.3 填充形狀281

16.3 列印283

16.4 程式實例研究——繪製幾何圖形285

習題16288

第17章 檔案讀寫290

17.1 驅動器、目錄和檔案290

17.1.1 驅動器290

17.1.2 目錄291

17.1.3 檔案293

17.2 檔案流和讀寫器295

17.2.1 使用檔案流295

17.2.2 文本讀寫器297

17.2.3 二進制讀寫器298

17.3 XML文檔操作299

17.3.1 XML讀寫器299

17.3.2XML文檔對象操作301

17.4 程式實例研究——列車時刻表302

習題17305

第18章 關係數據訪問306

18.1 ADONET數據訪問技術306

18.2 數據表和數據集307

18.2.1 使用數據表307

18.2.2 使用數據集309

18.2.3 顯示數據內容309

18.3 訪問資料庫311

18.3.1 建立數據連線311

18.3.2 執行數據命令312

18.3.3 使用數據適配器314

18.4 程式實例研究——學生成績查詢分析316

習題18320

第19章並行程式設計322

19.1 多執行緒322

19.1.1 進程與執行緒322

19.1.2 運行多執行緒323

19.1.3 執行緒資源共享325

19.2 使用BackgroundWorker327

19.3 並行序列操作331

19.4 異步計算332

19.4.1 使用異步工作流332

19.4.2 異步綁定和返回336

19.4.3 異步任務模式337

19.4.4 異步檔案讀寫339

19.4.5 異步資料庫訪問341

19.5 異步訊息342

19.6 程式實例研究——並行啟發式搜尋345

習題19347

參考文獻349

相關詞條

相關搜尋

熱門詞條

聯絡我們