12 8 第十二章小結

2021-08-26 11:02:32 字數 732 閱讀 9202

12.8 第十二章小結

在本章的第一部分,我們討論了 .net 序列,由 ienumerable型別表示,在 f# 中也稱為 seq <'a>。我們開始討論生成序列的技術,包括高階函式、迭代器和 f# 序列表示式。我們看到,序列是延遲的,能夠建立無窮序列。我們看到了乙個實際的示例,使用顏色的無窮的序列,將繪製圖表的**,從在圖表中使用的生成顏色的**中分離出來。

接下來,我們討論了如何處理序列。我們使用高階函式,寫了相同的**,對應於 linq 的擴充套件方法,c# 的查詢表示式,和 f# 的序列表示式。這有助於我們了解查詢和序列表示式是如何工作的。乙個最重要的操作是,bind 操作,它發生在序列中,就像在 f# 中的 collect 函式,以及在 linq 中的 selectmany 方法。

相同的概念操作是可用於許多其他型別,並且我們看到,如何建立 f# 計算表示式,看起來像序列表示式,而只是處理其他型別。我們提供兩個實際例子,為處理選項型別實現計算表示式,在執行過程中,儲存日誌訊息。在某種程度上,同樣的概念可以用 c# 實現,把使用計算表示式的地方換成查詢表示式。f# 語言功能更通用的,而 c# 查詢表示式更適合查詢。

使用計算表示式最難的事,也許是確定什麼時候設計和實現,是有益的。在下一章中,我們會討論使用 f# 計算表示式中的最重要部分,能夠執行 i/o 操作,而不會阻塞呼叫者的執行緒 。這是特別重要的,當執行速度慢的 i/o,比如,從網際網路中讀資料。再後,我們將會看到,f# 如何使我們能夠以互動方式和視覺化處理資料,這對於今天的聯絡日益緊密的世界,就成為重要的任務。

第十二章 檔案

文字檔案 文字檔案是一種由若干字元構成的檔案,可以用文字編輯器進行閱讀或編輯。以txt py html等為字尾的檔案都是文字檔案。2.二進位制檔案 二進位制檔案一般是指不能用文字編輯器閱讀或編輯的檔案。以 mp4 png等為字尾的檔案都是二進位制檔案,如果想要開啟或修改這些檔案,必須通過特定軟體進行...

第十二章 dp

動態規劃策略 將原始問題拆分為多個子問題,將子問題結果記錄,方便復用子問題的解 遞迴 記憶化 遞推 是動態規劃的一體兩面,本質都是一樣的 遞推減少了呼叫次數,空間上還能優化,一般選擇遞推方式 遞迴 記憶化 int memo maxn 將o 2 n o n intfibonacci int n 遞推 ...

第十二章 異常

一 異常的概念 錯誤 編譯器 異常 執行期,程式沒有正常按照期望執行 異常產生時,在對應位置產生異常型別物件,程式 暫停 如果上下文有異常處理程式,對應處理 沒有則 異常向上傳播 報錯退出 異常向上傳播 如果異常在函式中產生,會傳播給函式的呼叫者 如果異常在模組的頂級位置,會傳播給引用該模組的模組 ...