![](/c49/30/10357185978.jpg)
出版社:人民郵電 ISBN:9787115390608 商品編碼:10357185978 開本:16 出版時間:2015-08-01 代碼:49 作者:歐陽繼超\\
" 基本信息 - 商品名稱:函數式編程
- 作者:(美)佛格斯|譯者:歐陽繼超//王妮
- 代碼:49
- 出版社:人民郵電
- ISBN號:9787115390608
其他參考信息 - 出版時間:2015-08-01
- 印刷時間:2015-08-01
- 版次:1
- 印次:1
- 開本:16開
- 包裝:平裝
- 頁數:204
- 字數:258千字
內容提要 是近年來非常受矚目的一門編程語言 ,它既支持面向對像編程,也支持函數式編程。本書 專門介紹函數式編程的特性。 佛格斯編著的《函數式編程》共9章 ,分別介紹了函數式編程、一等函數與 Applicative編程、變量的作用域和閉包、高階函數 、由函數構建函數、遞歸、純度和不變性以及*改政 策、基於流的編程、無類編程。除此之外,附錄中還 介紹了*多函數式。 本書內容全面,示例豐富,適合想要了解函數式 編程的程序員和學習的函數 式程序員閱讀。 作者簡介 Michael Fogus是Dynamic Animation Systems的軟件架構師,在分布式仿真、機器視覺和專家繫統建設方面經驗豐富。他是Clojure、ClojureScript以及Underscore-contrib的貢獻者,還是《Clojure編程樂趣》的作者。 目錄 **章 函數式編程簡介 1.1 案例 1.2 開始函數式編程 1.2.1 為什麼函數式編程很重要 1.2.2 以函數為 1.2.3 封裝和隱藏 1.2.4 以函數為行為單位 1.2.5 數據抽像 1.2.6 函數式初試 1.2.7 加速 1.3 Underscore示例 1.4 總結 第2章 一等函數與Applicative編程 2.1 函數是一等公民 2.2 Applicative編程 2.2.1 集合中心編程 2.2.2 Applicative編程的其他實例 2.2.3 定義幾個Applicative函數 2.3 數據思考 2.4 總結 第3章 變量的作用域和閉包 3.1 全局作用域 3.2 詞法作用域 3.3 動態作用域 3.4 函數作用域 3.5 閉包 3.5.1 模擬閉包 3.5.2 使用閉包 3.5.3 閉包的抽像 3.6 總結 第4章 高階函數 4.1 以其他函數為參數的函數 4.1.1 關於傳遞函數的思考:max、finder和best 4.1.2 關於傳遞函數的*多思考:重復、反復和條件迭代 (iterateUntil) 4.2 返回其他函數的函數 4.2.1 高階函數捕獲參數 4.2.2 捕獲變量的好處 4.2.3 防止不存在的函數:fnull 4.3 整合:對像校驗器 4.4 總結 第5章 由函數構建函數 5.1 函數式組合的精華 5.2 柯裡化(Currying) 5.2.1 向右柯裡化,還是向左 5.2.2 自動柯裡化參數 5.2.3 柯裡化流利的API 5.2.4 柯裡化的缺點 5.3 部分應用 5.3.1 部分應用一個和兩個已知的參數 5.3.2 部分應用任意數量的參數 5.3.3 局部應用實戰:前置條件 5.4 通過組合端至端的拼接函數 5.5 總結 第6章 遞歸 6.1 自吸收(self-absorbed)函數(調用自己的函數) 6.1.1 用遞歸遍歷圖 6.1.2 深度優先自遞歸搜索 6.1.3 遞歸和組合函數:Conjoin和Disjoin 6.2 相互關聯函數(函數調用其他會再調用回它的函數) 6.2.1 使用遞歸深克隆 6.2.2 遍歷嵌套數組 6.3 太多遞歸了 6.3.1 生成器 6.3.2 蹦床原理以及回調 6.4 遞歸是一個底層操作 6.5 總結 第7章 純度、不變性和*改政策 7.1 純度 7.1.1 純度和測試之間的關繫 7.1.2 提取純函數 7.1.3 測試不純函數的屬性 7.1.4 純度與引用透明度的關繫 7.1.5 純度和冪等性 7.2 不變性 7.2.1 如果一棵樹倒在樹林裡,有沒有聲音? 7.2.2 不變性與遞歸 7.2.3 凍結和克隆 7.2.4 在函數級別上觀察不變性 7.2.5 觀察對像的不變性 7.2.6 對像往往是一個低級別的操作 7.3 控制變化的政策 7.4 總結 第8章 基於流的編程 8.1 鏈接 8.1.1 惰性鏈 8.1.2 Promises 8.2 管道 8.3 數據流與控制流 8.3.1 找個一般的形狀 8.3.2 函數可以簡化創建action 8.4 總結 第9章 無類編程 9.1 數據導向 9.2 Mixins 9.2.1 修改核心原型 9.2.2 類層次結構 9.2.3 改變層級結構 9.2.4 用Mixin扁平化層級結構 9.2.5 通過Mixin擴展新的語義 9.2.6 通過Mixin混合出新的類型 9.2.7 方法是低級別操作 9.3 }).call(“Finis”); 附錄A *多函數式 A.1 的函數式庫 A.1.1 函數式 A.1.2 Underscore-contrib A.1.3 RxJS A.1.4 Bilby A.1.5 allong.es A.1.6 其他函數式庫 A.2 能編譯成的函數式語言 A.2.1 ClojureScript A.2.2 CoffeeScript A.2.3 Roy A.2.4 Elm 附錄B 推薦書目
" |