出版時間:2011-10 出版社:清華大學(xué)出版社 作者:[捷克]Tomas Petricek,[英]Jon Skeet 頁數(shù):547 譯者:賈洪峰
Tag標(biāo)簽:無
前言
本書不同于目前已有的許多其他編程書籍。它沒有僅專注于某一種特定的編程語言或程序庫,而是使用現(xiàn)有的語言和程序庫來解釋一種思維方式,這種思維方式的重要性日益增加,而且已經(jīng)對許多新興技術(shù)產(chǎn)生了影響?! ∽x者可能已經(jīng)了解了本書介紹的一些概念,因?yàn)楹瘮?shù)式思想在許多技術(shù)中都有所體現(xiàn)。.NET領(lǐng)域的例子包括C#3.0和LINQ項(xiàng)目、Microsoft Parallel Extensions to.NET以及Windows Presentation Foundation(WPF)中所使用的聲明性編程模型。在本書中,我們將在讀者已有的.NET和C#經(jīng)驗(yàn)基礎(chǔ)上,解釋函數(shù)式編程范例。我們將介紹微軟新推出的函數(shù)式編程語言F#,并用它將抽象思想變得更具體一些。如果可能,我們還會給出C#示例,這是因?yàn)樵谠O(shè)計C#應(yīng)用程序時,函數(shù)式思想也可以提供一些幫助?! ∪绻覀円帉懸槐緦iT介紹F#的書,可能會完全根據(jù)它的各個語言特征來組織篇章結(jié)構(gòu),并對這些特征進(jìn)行逐一解釋。但本書整體上是關(guān)于函數(shù)式編程的,其結(jié)構(gòu)基礎(chǔ)比較松散,也就是那些構(gòu)成函數(shù)式范例的思想。這種組織方式要更困難一些,因?yàn)樗枷胫g沒有清晰界限,經(jīng)常是相互重疊的?! ∥覀儑L試選出了一些思想,我們認(rèn)為這些思想對于函數(shù)式編程入門者來說是最為重要的,并圍繞著這些思想來編寫本書。這一點(diǎn)在第Ⅱ部分尤其重要,這一部分系統(tǒng)地研究了函數(shù)式、高階函數(shù)和函數(shù)式程序的體系結(jié)構(gòu)。這就意味著,有一些可用于快速演示函數(shù)式編程的例子(如處理數(shù)據(jù)集合的例子),不會僅在書中出現(xiàn)一次,而是在介紹各個新思想之后,在若干章節(jié)中逐漸開發(fā)這些例子。我們之所以決定采用這一方法,是因?yàn)樗砻髁撕瘮?shù)式編程是如何從一小組簡單概念中優(yōu)雅地發(fā)展而來的,就像函數(shù)式程序本身一樣。
內(nèi)容概要
本書旨在介紹用于解決現(xiàn)實(shí)問題的函數(shù)式思想及相關(guān)技巧。盡管本書給出了很多用F#和c#兩種語言編寫的示例,但其重點(diǎn)在于闡述思想,而不是介紹F#或C#語言。
一本書的主要內(nèi)容包括:如何用函數(shù)式思維方式來思考問題;如何將面向?qū)ο缶幊膛c函數(shù)式纏程結(jié)合起來;如何編寫高效的F#代碼。要閱讀本書,最好具備OOP和c#2,0編程經(jīng)驗(yàn),不需要具備有關(guān)函數(shù)式編程或F#的基礎(chǔ)知識。
本書的適用對象是具備上述經(jīng)驗(yàn)并希望了解函數(shù)式編程的.NET開發(fā)人員。計算機(jī)專業(yè)的學(xué)生也可以通過閱讀本書,了解函數(shù)式概念的現(xiàn)實(shí)應(yīng)用。
作者簡介
Tomas Petricek微軟C#方向的MVP,F(xiàn)#社區(qū)領(lǐng)導(dǎo)者之一。他是微軟F#研究團(tuán)隊(duì)的成員,主要研究F#分布式編程和反應(yīng)式編程?! on Skeet微軟C#方向的MVP,資深C#和Java程序員,“Stack Overflow”撰搞人,《深入解析C#》(C# In Depth)—書的作者。
書籍目錄
第1部分 學(xué)習(xí)函數(shù)式思維方式
第1章 不同的思維方式
1.1 什么是函數(shù)式編程
1.2 通向現(xiàn)實(shí)世界函數(shù)式編程的途徑
1.2.1 函數(shù)式語言
1.2.2 NET平臺上的函數(shù)式編程
1.3 用函數(shù)式編程提高生產(chǎn)效率
1.3.1 函數(shù)式范例
1.3.2 聲明性編程風(fēng)格
1.3.3 理解程序所做的工作.
1.3.4 并發(fā)友好的應(yīng)用編程.
1.3.5 函數(shù)式風(fēng)格如何塑造代碼
1.4 函數(shù)式編程舉例
1.4.1 使用聲明性風(fēng)格表明目的
1.4.2 理解使用不可變性的代碼
1.4.3 編寫高效的并行程序.
1.5 介紹F#
1.5.1 F#中的Hello world程序
1.5.2 從簡單到現(xiàn)實(shí)世界
1.6 小結(jié)
第2章 函數(shù)式編程的核心概念
2.1 函數(shù)式編程的基礎(chǔ)
2.2 函數(shù)式程序的求值
2.2.1 處理不可變值
2.2.2 使用不可變數(shù)據(jù)結(jié)構(gòu)
2.2-3 使用遞歸改變程序狀態(tài)
2.2.4 使用表達(dá)式而不是語句
2.2.5 計算式運(yùn)算
2.3 編寫聲明性代碼
2.3.1 以函數(shù)為值
2.3.2 高階函數(shù)
2.4 函數(shù)式類型和值
2.4.1 C#和F#中的類型推斷
2.4.2 可區(qū)分聯(lián)合類型簡介
2.4.3 模式匹配
2.4.4 編譯時程序檢查
2.5 小結(jié)
第3章 F#和C#中的元組、列表與函數(shù)
3.1 值和函數(shù)聲明
……
資源
媒體關(guān)注與評論
“你絕對不會再以過去的方式來看自己的代碼了!” ——Mads Torgersen(微軟C#項(xiàng)目經(jīng)理) “一本真正的函數(shù)式書籍!” ——Andrew Siemer(.NET架構(gòu)師) “.NET需要更多函數(shù)式程序員……本書告訴您如何成為其中一員?!薄 猄tuart Cabom,Thoughtworks高級顧問 “警告:本書的'哇噢'指數(shù)極高。它極度刺激著我的腦袋,但這種刺激是正面的!” ——Mark Seemann,Safewhere (開發(fā)人員/架構(gòu)師) “我要向軟件領(lǐng)域所有從業(yè)人員而非僅限于.NET開發(fā)人員推薦本書?!薄 狿aul King(ASERT經(jīng)理)
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載