幫助中心 | 我的帳號 | 關於我們

函數式與併發編程(核心概念與特性)

  • 作者:(美)米歇爾·卡彭特|責編:王軍//劉遠菁|譯者:郭濤
  • 出版社:清華大學
  • ISBN:9787302672173
  • 出版日期:2024/10/01
  • 裝幀:平裝
  • 頁數:353
人民幣:RMB 118 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書介紹了一系列核心的編程語言結構,可讓你的編程工作變得高效起來,無論你使用的是哪種編程語言,你都能從中獲益。Charpentier用大量重點突出的小型Scala代碼示例闡釋了函數式與併發編程的關鍵概念,並通過完整的案例研究對前述技術和技巧進行深入的探究和闡釋。這些技術和技巧將從一種語言傳遞到另一種語言——包括Java的最新版本。利用函數式和併發編程語言特性,開發人員和程序員將能編寫出易於理解、調試、優化和改進的優質代碼。另外,本書還討論了現代編程語言中常用的類型策略,包括類型推斷、子類型、多態性、類型類、類型邊界和變型。

作者介紹
(美)米歇爾·卡彭特|責編:王軍//劉遠菁|譯者:郭濤
    米歇爾·卡彭特(Michel Charpentier),是美國新罕布希爾大學(UNH)電腦科學系的副教授。多年來,他一直致力於分散式系統、正式驗證以及移動感測器網路等領域的研究。自1999年以來,他一直在UNH工作,目前正在講授編程語言、併發性、形式驗證和模型檢查等課程。

目錄
第Ⅰ部分  函數式編程
  第1章  函數式編程的概念
    1.1  什麼是函數式編程
    1.2  函數
    1.3  從函數到函數式編程概念
    1.4  小結
  第2章  編程語言中的函數
    2.1  定義函數
    2.2  合成函數
    2.3  定義為方法的函數
    2.4  定義為方法的運算符
    2.5  擴展方法
    2.6  局部函數
    2.7  重複參數
    2.8  可選參數
    2.9  命名參數
    2.10  類型參數
    2.11  小結
  第3章  不可變性
    3.1  純函數和非純函數
    3.2  動作
    3.3  表達式與語句
    3.4  函數變數
    3.5  不可變對象
    3.6  可變狀態的實現
    3.7  函數式列表
    3.8  混合編程
    3.9  更新可變/不可變對象的集合
    3.10  小結
  第4章  案例研究:active-passive集合
    4.1  面向對象設計
    4.2  函數值
    4.3  函數對象
    4.4  小結
  第5章  模式匹配與代數數據類型
    5.1  函數開關
    5.2  元組
    5.3  選項
    5.4  回顧函數式列表
    5.5  樹
    5.6  示例:列表拉鏈
    5.7  提取器
    5.8  小結
  第6章  遞歸程序設計
    6.1  遞歸的必要性
    6.2  遞歸演算法
    6.3  遞歸演算法的關鍵原理
    6.4  遞歸結構
    6.5  尾遞歸
    6.6  尾遞歸函數示例

    6.7  小結
  第7章  列表遞歸
    7.1  等價的遞歸演算法
    7.2  遍歷列表
    7.3  返回列表
    7.4  從執行堆棧中構建列表
    7.5  多個/嵌套列表上的遞歸
    7.6  除尾部以外的子列表遞歸
    7.7  逆序創建列表
    7.8  示例:排序
    7.9  高效地構建列表
    7.10  小結
  第8章  案例研究:二叉搜索樹
    8.1  二叉搜索樹
    8.2  二叉搜索樹的整數集
    8.3  未重新平衡情況下的實現
    8.4  自平衡樹
    8.5  小結
  第9章  高階函數
    9.1  函數作為值
    9.2  柯里化
    9.3  函數字面量
    9.4  函數與方法
    9.5  單一抽象方法介面
    9.6  部分應用
    9.7  閉包
    9.8  控制反轉
    9.9  小結
  第10章  標準高階函數
    10.1  帶有謂詞參數的函數
    10.2  映射和遍歷
    10.3  flatMap
    10.4  fold和reduce
    10.5  iterate、tabulate和unfold
    10.6  sortWith、sortBy、maxBy和minBy
    10.7  groupBy和groupMap
    10.8  標準高階函數的實現
    10.9  foreach、map、flatMap和for推導式
    10.10  小結
  第11章  案例研究:文件樹
    11.1  設計概述
    11.2  節點搜索輔助函數
    11.3  字元串表示
    11.4  構建樹
    11.5  查詢
    11.6  導航
    11.7  樹形拉鏈
    11.8  小結
  第12章  延遲計算
    12.1  延遲求值的參數

    12.2  按名稱參數
    12.3  控制抽象
    12.4  內部領域特定語言
    12.5  作為延遲求值列表的流
    12.6  管道流
    12.7  無限數據結構流
    12.8  迭代
    12.9  列表、流、迭代程序和視圖
    12.10  欄位和局部變數的延遲求值
    12.11  示例:子集和
    12.12  小結
  第13章  故障處理
    13.1  例外情況和特殊值
    13.2  使用Option
    13.3  使用Try
    13.4  使用Either
    13.5  高階函數和管道
    13.6  小結
  第14章  案例研究:蹦床
    14.1  尾調用優化
    14.2  用於尾調用的蹦床函數
    14.3  Java中的尾調用優化
    14.4  處理非尾調用
    14.5  小結
  第15章  類型(及相關概念)
    15.1  類型策略
    15.2  類型集合
    15.3  類型服務
    15.4  抽象數據類型
    15.5  類型推斷
    15.6  子類型
    15.7  多態性
    15.8  類型變換
    15.9  類型邊界
    15.10  類型類
    15.11  小結
第Ⅱ部分  併發編程
  第16章  併發編程的概念
    16.1  非順序程序
    16.2  併發編程相關概念
    16.3  小結
  第17章  線程與不確定性
    17.1  執行線程
    17.2  使用lambda表達式創建線程
    17.3  多線程程序的不確定性
    17.4  線程終止
    17.5  測試和調試多線程程序
    17.6  小結
  第18章  原子性和鎖
    18.1  原子性

    18.2  非原子操作
    18.3  原子操作和非原子複合操作
    18.4  鎖
    18.5  內部鎖
    18.6  選擇鎖目標
    18.7  小結
  第19章  線程安全對象
    19.1  不可變對象
    19.2  封裝同步策略
    19.3  避免引用轉義
    19.4  公用鎖和私有鎖
    19.5  利用不可變類型
    19.6  線程安全
    19.7  小結
  第20章  案例研究:線程安全隊列
    20.1  作為列表對組的隊列
    20.2  單個公用鎖的實現
    20.3  單個私有鎖的實現
    20.4  應用鎖拆分
    20.5  小結
  第21章  線程池
    21.1  即發即棄非同步執行
    21.2  示例:並行伺服器
    21.3  不同類型的線程池
    21.4  並行集合
    21.5  小結
  第22章  同步
    22.1  同步的必要性
    22.2  同步器
    22.3  死鎖
    22.4  使用線程轉儲調試死鎖
    22.5  Java內存模型
    22.6  小結
  第23章  常用同步器
    23.1  鎖
    23.2  鎖存器和柵欄
    23.3  信號量
    23.4  條件
    23.5  阻塞隊列
    23.6  小結
  第24章  案例研究:並行執行
    24.1  順序引用實現
    24.2  每個任務一個新線程
    24.3  有界線程數
    24.4  專用線程池
    24.5  共享線程池
    24.6  有界線程池
    24.7  並行集合
    24.8  使用條件提交非同步任務
    24.9  雙信號量實現

    24.10  小結
  第25章  Future與Promise
    25.1  函數任務
    25.2  Future作為同步器
    25.3  超時、故障和取消
    25.4  Future變體
    25.5  Promise
    25.6  示例:線程安全緩存
    25.7  小結
  第26章  函數併發編程
    26.1  阻塞的正確性和性能問題
    26.2  回調
    26.3  Future的高階函數
    26.4  Future的flatMap函數
    26.5  示例:重新訪問並行伺服器
    26.6  函數併發編程模式
    26.7  小結
  第27章  最小化線程阻塞
    27.1  原子操作
    27.2  無鎖數據結構
    27.3  fork/join池
    27.4  非同步編程
    27.5  actor
    27.6  反應流
    27.7  非阻塞同步
    27.8  小結
  第28章  案例研究:並行策略
    28.1  問題定義
    28.2  帶超時的順序實現
    28.3  使用invokeAny的並行實現
    28.4  使用CompletionService的並行實現
    28.5  Scala Future的非同步實現
    28.6  帶有CompletableFuture的非同步實現
    28.7  緩存策略的結果
    28.8  小結
附錄和辭彙表通過掃描封底二維碼獲取
附錄  Java和Kotlin的特性
辭彙表

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032