注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)網(wǎng)絡(luò)與數(shù)據(jù)通信網(wǎng)絡(luò)服務(wù)C++函數(shù)式編程

C++函數(shù)式編程

C++函數(shù)式編程

定 價(jià):¥99.00

作 者: (美)伊凡·庫(kù)奇(Ivan)
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787111641988 出版時(shí)間: 2020-01-01 包裝:
開(kāi)本: 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《C 函數(shù)式編程》介紹了C 的面向函數(shù)式編程。面向函數(shù)式編程是繼面向?qū)ο缶幊讨笥忠痪幊谭妒剑鉀Q了命令式(過(guò)程式)編程與面向?qū)ο缶幊讨谐霈F(xiàn)的問(wèn)題,是一種極具潛力的編程方式,值得研究學(xué)習(xí)。主要講解了函數(shù)對(duì)象、純潔性(Purity)、惰性求值、range、函數(shù)式數(shù)據(jù)結(jié)構(gòu)、代數(shù)類(lèi)型及模式匹配、monad、模板元編程、并發(fā)系統(tǒng)的函數(shù)式設(shè)計(jì),以及測(cè)試與調(diào)試等有關(guān)內(nèi)容,還介紹了使用原有函數(shù)創(chuàng)建新函數(shù)的知識(shí)?!禖 函數(shù)式編程》不僅可以作為C 程序員、編程愛(ài)好者以及軟件工程師學(xué)習(xí)函數(shù)式編程的參考書(shū),還可以作為高等院校C 編程語(yǔ)言課的高級(jí)教材

作者簡(jiǎn)介

  Ivan ?uki? 在貝爾格萊德數(shù)學(xué)系教授現(xiàn)代C 技術(shù)和函數(shù)式編程。他從1998 年開(kāi)始使用C 。在以前和攻讀博士學(xué)位時(shí)研究函數(shù)式編程,他應(yīng)用函數(shù)式編程技術(shù)編寫(xiě)了全球數(shù)億人使用的真實(shí)項(xiàng)目。Ivan是KDE 的核心開(kāi)發(fā)人員,KDE 是*大的開(kāi)源C 項(xiàng)目。

圖書(shū)目錄

目錄
譯者序
致謝
前言
關(guān)于本書(shū)
關(guān)于作者
第1 章 函數(shù)式編程簡(jiǎn)介
1.1 什么是函數(shù)式編程?
1.1.1 與面向?qū)ο缶幊痰年P(guān)系
1.1.2 命令式與聲明式編程的比較
1.2 純函數(shù)(Pure functions)
1.2.1 避免可變狀態(tài)
1.3 以函數(shù)方式思考問(wèn)題 ·
1.4 函數(shù)式編程的優(yōu)點(diǎn)
1.4.1 代碼簡(jiǎn)潔易讀
1.4.2 并發(fā)和同步
1.4.3 持續(xù)優(yōu)化
1.5 C 作為函數(shù)式編程語(yǔ)言的進(jìn)化
1.6 將會(huì)學(xué)到什么
總結(jié)
第2 章 函數(shù)式編程之旅
2.1 函數(shù)使用函數(shù)?
2.2 STL 實(shí)例
2.2.1 求平均值
2.2.2 折疊(Folding)
2.2.3 刪除字符串空白符
2.2.4 基于謂詞分割集合
2.2.5 過(guò)濾(Filtering)和轉(zhuǎn)換(Transforming)
2.3 STL 算法的可組合性
2.4 編寫(xiě)自己的高階函數(shù)
2.4.1 接收函數(shù)作為參數(shù)
2.4.2 用循環(huán)實(shí)現(xiàn)
2.4.3 遞歸(Recursion)和尾調(diào)用優(yōu)化(Tail-call optimization)
2.4.4 使用折疊實(shí)現(xiàn)
總結(jié)
第3 章 函數(shù)對(duì)象
3.1 函數(shù)和函數(shù)對(duì)象
3.1.1 自動(dòng)推斷返回值類(lèi)型
3.1.2 函數(shù)指針
3.1.3 調(diào)用操作符重載
3.1.4 創(chuàng)建通用函數(shù)對(duì)象
3.2 lambda 和閉包(Closure)
3.2.1 lambda 語(yǔ)法
3.2.2 lambda 詳解
3.2.3 在lambda 中創(chuàng)建任意成員變量
3.2.4 通用lambda 表達(dá)式
3.3 編寫(xiě)比lambda 更簡(jiǎn)潔的函數(shù)對(duì)象
3.3.1 STL 中的操作符函數(shù)對(duì)象
3.3.2 其他庫(kù)中的操作符函數(shù)對(duì)象
3.4 用std::function 包裝函數(shù)對(duì)象
總結(jié)
第4 章 以舊函數(shù)創(chuàng)建新函數(shù)
4.1 偏函數(shù)應(yīng)用
4.1.1 把二元函數(shù)轉(zhuǎn)換成一元函數(shù)的通用方法
4.1.2 使用std::bind 綁定值到特定的函數(shù)參數(shù)
4.1.3 二元函數(shù)參數(shù)的反轉(zhuǎn)
4.1.4 對(duì)多參數(shù)函數(shù)使用std::bind
4.1.5 使用lambda 替代std::bind
4.2 柯里化(Currying):看待函數(shù)不同的方式
4.2.1 創(chuàng)建柯里化函數(shù)的簡(jiǎn)單方法
4.2.2 數(shù)據(jù)庫(kù)訪問(wèn)柯里化
4.2.3 柯里化與偏函數(shù)應(yīng)用
4.3 函數(shù)組合
4.4 函數(shù)提升(復(fù)習(xí))
4.4.1 鍵值對(duì)列表反轉(zhuǎn)
總結(jié)
第5 章 純潔性:避免可變狀態(tài)
5.1 可變狀態(tài)帶來(lái)的問(wèn)題
5.2 純函數(shù)和引用透明
5.3 無(wú)副作用編程
5.4 并發(fā)環(huán)境中的可變狀態(tài)與不可變狀態(tài)
5.5 const 的重要性
5.5.1 邏輯const 與內(nèi)部const
5.5.2 對(duì)于臨時(shí)值優(yōu)化成員函數(shù)
5.5.3 const 的缺陷
總結(jié)
第6 章 惰性求值
6.1 C 的惰性
6.2 惰性作為一種優(yōu)化技術(shù)
6.2.1 集合惰性排序
6.2.2 用戶接口中的列表視圖
6.2.3 通過(guò)緩存函數(shù)結(jié)果修剪遞歸樹(shù)
6.2.4 動(dòng)態(tài)編程作為惰性形式
6.3 通用記憶化(Generalized memoization)
6.4 表達(dá)式模板與惰性字符串拼接
6.4.1 純潔性與表達(dá)式模板
總結(jié)
第7 章 range
7.1 range 簡(jiǎn)介
7.2 創(chuàng)建數(shù)據(jù)的只讀視圖
7.2.1 range 的filter 函數(shù)
7.2.2 range 的transform 函數(shù)
7.2.3 range 惰性求值
7.3 修改range 中的值
7.4 定界rang 和無(wú)限r(nóng)ange
7.4.1 用定界range 優(yōu)化用于輸入的range
7.4.2 用哨兵創(chuàng)建無(wú)限r(nóng)ange
7.5 用range 統(tǒng)計(jì)詞頻
總結(jié)
第8 章 函數(shù)式數(shù)據(jù)結(jié)構(gòu)
8.1 不可變鏈表(Immutable linked lists)
8.1.1 在表頭添加和刪除元素
8.1.2 在鏈表末尾添加和刪除元素
8.1.3 在鏈表中間添加和刪除元素
8.1.4 內(nèi)存管理
8.2 不可變類(lèi)向量結(jié)構(gòu)
8.2.1 位圖向量樹(shù)中的元素查找
8.2.2 向位圖向量樹(shù)追加元素
8.2.3 位圖向量樹(shù)的修改
8.2.4 在位圖向量樹(shù)的末尾刪除元素
8.2.5 其他操作和位圖向量樹(shù)的整體效率
總結(jié)
第9 章 代數(shù)數(shù)據(jù)類(lèi)型及模式匹配
9.1 代數(shù)數(shù)據(jù)類(lèi)型
9.1.1 通過(guò)繼承實(shí)現(xiàn)和類(lèi)型
9.1.2 通過(guò)union 和std::variant 實(shí)現(xiàn)和類(lèi)型
9.1.3 特定狀態(tài)的實(shí)現(xiàn)
9.1.4 特殊的和類(lèi)型:Optional
9.1.5 和類(lèi)型用于錯(cuò)誤處理
9.2 使用代數(shù)數(shù)據(jù)類(lèi)型進(jìn)行域建模
9.2.1 原始的方法及其缺點(diǎn)
9.2.2 更復(fù)雜的方法:自上而下的設(shè)計(jì)
9.3 使用模式匹配更好地處理代數(shù)數(shù)據(jù)類(lèi)型
9.4 Mach7 的強(qiáng)大匹配功能
總結(jié)
第10 章 monad
10.1 仿函數(shù)并不是以前的仿函數(shù)
10.1.1 處理可選值
10.2 monad:更強(qiáng)大的仿函數(shù)
10.3 基本的例子
10.4 range 與monad 的嵌套使用
10.5 錯(cuò)誤處理
10.5.1 std::optional作為monad
10.5.2 expected作為monad
10.5.3 try monad
10.6 monad 狀態(tài)處理
10.7 并發(fā)和延續(xù)monad
10.7.1 future 作為monad
10.7.2 future 的實(shí)現(xiàn)
10.8 monad 組合
總結(jié)
第11 章 模板元編程
11.1 編譯時(shí)操作類(lèi)型
11.1.1 推斷類(lèi)型調(diào)試
11.1.2 編譯時(shí)的模式匹配
11.1.3 提供類(lèi)型的元信息
11.2 編譯時(shí)檢查類(lèi)型的屬性
11.3 構(gòu)造科里化函數(shù)
11.3.1 調(diào)用所有可調(diào)用的
11.4 DSL 構(gòu)建塊
總結(jié)
第12 章 并發(fā)系統(tǒng)的函數(shù)式設(shè)計(jì)
12.1 Actor 模型:組件思想
12.2 創(chuàng)建簡(jiǎn)單的消息源
12.3 將反應(yīng)流建模為monad
12.3.1 創(chuàng)建宿(Sink)接收消息
12.3.2 轉(zhuǎn)換反應(yīng)流
12.3.3 創(chuàng)建給定值的流
12.3.4 連接流
12.4 過(guò)濾反應(yīng)流
12.5 反應(yīng)流的錯(cuò)誤處理
12.6 響應(yīng)客戶端
12.7 創(chuàng)建狀態(tài)可修改的Actor
12.8 用Actor 編寫(xiě)分布式系統(tǒng)
總結(jié)
第13 章 測(cè)試與調(diào)試
13.1 程序編譯正確嗎?
13.2 單元測(cè)試與純函數(shù)
13.3 自動(dòng)產(chǎn)生測(cè)試

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)