語言程序設計

清華大學出版社出版的圖書

《語言程序設計》是2012年1月1日由清華大學出版社出版的圖書。

內容簡介


語言程序設計
語言程序設計
《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.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.2 IComparable介面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.2 XML文檔對象操作301
17.4 程序實例研究——列車時刻表302
習題17305
第18章 關係數據訪問306
18.1 數據訪問技術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