第四部分 函式式程式設計應用
雖然函式式程式設計很優雅,但是,更重要的還是實用:它不僅能解決常規總是,解決專門問題,一樣出色。比如,我們已經看到的例子,第四章繪製餅圖的應用程式,和第十一章簡單的**瀏覽器,這些示例的主要目的,是為了演示特定的概念和技術。
第四部分則不同。每一章我們都會花大量篇幅討論實際問題,用最適當的 f# 功能,以函式式程式設計來解決。這些**用到的功能都是我們已經學過的,但是,限制在一章中討論,相對有點複雜。
函式式程式設計在兩個領域優勢明顯:非同步(asynchronous)和並行(concurrent)程式設計。
在第十三章,我們將討論非同步程式設計在資料驅動環境中的應用,用非同步方式獲取資料,以互動方式瀏覽其結構,用 excel 呈現結果。
在第十四章,我們將討論並行程式設計,這是函式式程式設計的亮點:由於有了不可變的特性,規避了修改共享狀態的問題,函式式序更容易並行化。
在第十五章,我們將使用組合(composition)來開發函式庫。我們所見到的很多函式式功能,都是利用這種原理構建的。它是這樣的,提供少量的、容易理解的基本操作,這些操作很容易進行組合,就能構建複雜的結果,而不必描述任何實現的細節。我們會建立乙個描述動畫的庫,和乙個簡單的金融的示例,來演示這一原理。
在第十六章,我們將討論需要響應不同事件的應用程式。事件的主題非常廣泛:可能由使用者介面生成,也可能來自需要收集使用者資訊,並向使用者展示資料的後台任務。
在第十三章和第十六章使用的 f# 功能,是很難用 c# 寫的,因此,這些示例將只使用 f#;第十四章和第十五章,只構建函式式程式設計標準最常用功能,比如不可變性、高階函式,以及可組合**,因此,大部分**是用 f# 和 c# 寫的;與本書前面部分,通常只用 c# 演示具體的概念不同,這裡的**更加接近實際,使用函式式概念進行設計,解決業務問題。
第四部分 方法3
對employee.calculatepay方法的呼叫是問題的原因。我們需要的是晚繫結。晚繫結 latebinging 意味著編譯器到執行時才選擇要執行的方法。為了迫使編譯器呼叫向上型別轉換得到的物件的方法的正確版本。我們使用了兩個關鍵字 virtual 和override.必須在基類方法中使用vi...
第四部分 方法5
linux繼承了unix作業系統結構清晰的特點。在linux下的檔案結構非常有條理。但是,上述的優點只有在對linux相當熟悉時,才能體會到。vmlinuz 我們已經知道,每乙個linux都有乙個核心 vmlinuz 我們在這個核心上新增上可以完成各種特定功能的模組,每個模組就體現在 linux中各...
JavaScript筆記(第四部分)
命 名 空 間 管理變數,防止汙染全域性,適用於模組開發 之 前 的 解 決 辦 方 已經不用 命名空間 var org xuming department2 lisi 了解即可 用 法 org.department1.jicheng.name 簡化 var jc org.department1.j...