[ 收藏 ] [ 简体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  • 新类目

     管理
     投资理财
     经济
     社会科学
  • C#函數式編程 編寫更優質的C#代碼 (美)恩裡科·博南諾(Enrico Bu
    該商品所屬分類:自然科學 -> 數學
    【市場價】
    750-1088
    【優惠價】
    469-680
    【作者】  
    【出版社】清華大學出版社 
    【ISBN】9787302510550
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    ISBN編號:9787302510550
    書名:C#函數式編程 C#函數式編程
    作者:[美]

    代碼:98
    開本:16開
    是否是套裝:否

    出版社名稱:清華大學出版社

        
        
    "

    C#函數式編程 編寫更優質的C#代碼

    作  者: (美)恩裡科·博南諾(Enrico Buonanno) 著 張久修 譯
    size="731x8"
    定  價: 98
    size="731x8"
    出?版?社: 清華大學出版社
    size="731x8"
    出版日期: 2019年01月01日
    size="731x8"
    頁  數: 364
    size="731x8"
    裝  幀: 平裝
    size="731x8"
    ISBN: 9787302510550
    size="731x8"
    目錄
    ●第Ⅰ部分核心概念
    章介紹函數式編程3
    1.1什麼是函數式編程4
    1.1.1函數作為類值4
    1.1.2避免狀態突變4
    1.1.3編寫具有強力保證的程序5
    1.2C#的函數式語言8
    1.2.1LINQ的函數式性質9
    1.2.2C#6和C#7中的函數式特性10
    1.2.3未來的C#將更趨函數化13
    1.3函數思維13
    1.3.1映射函數13
    1.3.2在C#中表示函數14
    1.4高階函數18
    1.4.1依賴於其他函數的函數18
    1.4.2適配器函數20
    1.4.3創建其他函數的函數20
    1.5使用HOF避免重復21
    1.5.1將安裝和拆卸封裝到HOF中23
    1.5.2將using語句轉換為HOF24
    1.5.3HOF的權衡25
    1.6函數式編程的好處27
    練習27
    小結28
    第2章為什麼函數純潔性很重要29
    2.1什麼是函數的純潔性29
    2.1.1純潔性和副作用30
    2.1.2管理副作用的策略31
    2.2純潔性和並發性33
    2.2.1純函數可良好地並行化34
    2.2.2並行化不純函數35
    2.2.3避免狀態的突變36
    2.3純潔性和可測性38
    2.3.1實踐:一個驗證場景39
    2.3.2在測試中引入不純函數40
    2.3.3為什麼很難測試不純函數42
    2.3.4參測試43
    2.3.5避免標頭接口44
    2.4純潔性和計算的發展47
    練習47
    小結48
    第3章設計函數簽名和類型49
    3.1函數簽名設計49
    3.1.1箭頭符號50
    3.1.2簽名的信息量有多大51
    3.2使用數據對像捕獲數據52
    3.2.1原始類型通常不夠具體53
    3.2.2使用自定義類型約束輸入53
    3.2.3編寫“誠實的”函數55
    3.2.組和對像來組合值56
    3.3使用Unit為數據缺失建模58
    3.3.1為什麼void不理想58
    3.3.2使用Unit彌合Action和Func之間的差異59
    3.4使用Option為數據可能缺失建模61
    3.4.1你每天都在使用糟糕的API61
    3.4.2Option類型的介紹62
    3.4.3實現Option65
    3.4.4通過使用Option而不是null來獲得健壯性68
    3.4.5Option作為偏函數的自然結果類型69
    練習73
    小結74
    第4章函數式編程中的模式77
    4.1將函數應用於結構的內部值77
    4.1.1將函數映射到序列上77
    4.1.2將函數映射到Option79
    4.1.3Option是如何提高抽像層級的81
    4.1.4函子82
    4.2使用ForEach執行副作用83
    4.3使用Bind來鏈接函數85
    4.3.1將返回Option的函數結合起來85
    4.3.2使用Bind平鋪嵌套列表87
    4.3.3實際上,這被稱為單子88
    4.3.4Return函數88
    4.3.5函子和單子之間的關繫89
    4.4使用Where過濾值90
    4.5使用Bind結合Option和IEnumerable91
    4.6在不同抽像層級上編碼92
    4.6.1常規值與不錯值93
    4.6.2跨越抽像層級94
    4.6.3重新審視Map與Bind95
    4.6.4在正確的抽像層級上
    工作96
    練習96
    小結97
    第5章使用函數組合設計程序99
    5.1函數組合99
    5.1.1復習函數組合100
    5.1.2方法鏈101
    5.1.3不錯值界域中的組合101
    5.2從數據流的角度進行思考102
    5.2.1使用LINQ的可組合
    API102
    5.2.2編寫可組合性更好的函數103
    5.3工作流編程105
    5.3.1關於驗證的一個簡單
    工作流106
    5.3.2以數據流的思想進行重構107
    5.3.3組合帶來了更大的靈活性108
    5.4介紹函數式領域建模109
    5.5端到端的服務器端工作流110
    5.5.1表達式與語句112
    5.5.2聲明式與命令式112
    5.5.3函數式分層113
    練習115
    小結115
    第Ⅱ部分函數式風格
    第6章函數式錯誤處理119
    6.1表示輸出的更安全方式120
    6.1.1使用Either捕獲錯誤細節120
    6.1.2處理Either的核心函數123
    6.1.3比較Option和Either124
    6.2鏈接操作可能失敗125
    6.3驗證:Either的一個完美用例127
    6.3.1為錯誤選擇合適的表示法128
    6.3.2定義一個基於Either的API129
    6.3.3添加驗證邏輯130
    6.4將輸出提供給客戶端應用程序131
    6.4.1公開一個類似Option的接口132
    6.4.2公開一個類似Either的接口134
    6.4.3返回一個DTO結果134
    6.5Either的變體136
    6.5.1在不同的錯誤表示之間進行改變136
    6.5.2Either的特定版本137
    6.5.3重構Validation和Exceptional138
    6.5.4保留異常141
    練習142
    小結142
    第7章用函數構造一個應用程序145
    7.1偏函數應用:逐個提供參數146
    7.1.1手動啟用偏函數應用147
    7.1.2歸納偏函數應用148
    7.1.3參數的順序問題150
    7.2克服方法解析的怪癖150
    7.3柯裡化函數:優化偏函數應用152
    7.4創建一個友好的偏函數應用API155
    7.4.1可文檔化的類型156
    7.4.2具化數據訪問函數157
    7.5應用程序的模塊化及
    組合159
    7.5.1OOP中的模塊化160
    7.5.2FP中的模塊化162
    7.5.3比較兩種方法164
    7.5.4組合應用程序165
    7.6將列表壓縮為單個值166
    7.6.1LINQ的Aggregate方法166
    7.6.2聚合驗證結果168
    7.6.3收獲驗證錯誤169
    練習170
    小結171
    第8章有效地處理多參函數173
    8.1不錯界域中的函數應用程序174
    8.1.1理解應用式176
    8.1.2提升函數177
    8.1.3介紹基於屬性的測試179
    8.2函子、應用式、單子181
    8.3單子定律182
    8.3.1183
    8.3.2183
    8.3.3結合律184
    8.3.4對多參函數使用Bind185
    8.4通過對任何單子使用LINQ來提高可讀性186
    8.4.1對任意函子使用LINQ186
    8.4.2對任意單子使用LINQ188
    8.4.3let、where及其他LINQ子句191
    8.5何時使用Bind或Apply192
    8.5.1具有智能構造函數的驗證192
    8.5.2使用應用式流來收集錯誤194
    8.5.3使用單子流來快速失敗195
    練習196
    小結196
    第9章關於數據的函數式思考199
    9.1狀態突變的陷阱200
    9.2理解狀態、標識及變化202
    9.2.1有些事物永遠不會變化203
    9.2.2表示非突變的變化205
    9.3強制不可變性207
    9.3.1永遠不可變209
    9.3.2無樣板代碼的拷貝方法的可行性210
    9.3.3利用F#處理數據類型212
    9.3.4比較不變性的策略:一場丑陋的比賽213
    9.4函數式數據結構簡介214
    9.4.1經典的函數式鏈表215
    9.4.2二叉樹219
    練習223
    小結224
    0章事件溯源:持久化的函數式方法225
    10.1關於數據存儲的函數式思考226
    10.1.1為什麼數據存儲隻能追加226
    10.1.2放松,並忘卻存儲狀態227
    10.2事件溯源的基礎知識228
    10.2.1表示事件228
    10.2.2持久化事件229
    10.2.3表示狀態230
    10.2.4一個模式匹配的插曲231
    10.2.5表示狀態轉換234
    10.2.6從過去的事件中重建當前狀態235
    10.3事件溯源繫統的架構236
    10.3.1處理命令237
    10.3.2處理事件240
    10.3.3添加驗證241
    10.3.4根據事件創建數據的視圖243
    10.4比較不可變存儲的不同方法246
    10.4.1Datomic與
    EventStore247
    10.4.2你的領域是否受事件驅動?247
    小結248
    第Ⅲ部分不錯技術
    1章惰性計算、延續以及單子組合之美251
    11.1惰性的優點251
    11.1.1用於處理Option的惰性API252
    11.1.2組合惰性計算254
    11.2使用Try進行異常處理256
    11.2.1表示可能失敗的計算257
    11.2.2從JSON對像中安全地提取信息257
    11.2.3組合可能失敗的計算259
    11.2.4單子組合:是什麼意思呢?260
    11.3為數據庫訪問創建中間件管道261
    11.3.1組合執行安裝/拆卸的函數261
    11.3.2逃離阨運金字塔的秘方263
    11.3.3捕獲中間件函數的本質263
    11.3.4實現中間件的查詢模式265
    11.3.5添加計時操作的中間件268
    11.3.6添加管理數據庫事務的中間件269
    小結271
    2章有狀態的程序和計算273
    12.1管理狀態的程序274
    12.1.1維護所檢索資源的緩存275
    12.1.2重構可測試性和錯誤處理277
    12.1.3有狀態的計算278
    12.2一種用於生成隨機數據的語言279
    12.2.1生成隨機整數280
    12.2.2生成281
    12.2.3生成復雜的結構282
    12.3有狀態計算的通用模式284
    小結287
    3章使用異步計算289
    13.1異步計算290
    13.1.1對異步的需要290
    13.1.2用Task表示異步操作291
    13.1.3Task作為一個將來值的容器292
    13.1.4處理失敗294
    13.1.5一個用於貨幣轉換的HTTPAPI296
    13.1.6如果失敗,請再試幾次297
    13.1.7並行運行異步操作297
    13.2遍歷:處理不錯值列表299
    13.2.1使用單子的Traverse來驗證值列表301
    13.2.2使用應用式Traverse來收集驗證錯誤302
    13.2.3將多個驗證器應用於單個值304
    13.2.4將Traverse與Task一起使用以等待多個結果305
    13.2.5為單值結構定義Traverse306
    13.3結合異步和驗證(或其他任何兩個單子效果)308
    13.3.1堆疊單子的問題308
    13.3.2減少效果的數量310
    13.3.3具有一個單子堆疊的LINQ表達式311
    小結312
    4章數據流和ReactiveExtensions315
    14.1用IObservable表示數據流316
    14.1.1時間上的一個序列的值316
    14.1.2訂閱IObservable317
    14.2創建IObservable318
    14.2.1創建一個定時器319
    14.2.2使用Subject來告知IObservable應何時發出信號320
    14.2.3從基於回調的訂閱中創建IObservable320
    14.2.4由更簡單的結構創建IObservable321
    14.3轉換和結合數據流323
    14.3.1流的轉換323
    14.3.2結合和劃分流325
    14.3.3使用IObservable進行錯誤處理327
    14.3.4融會貫通329
    14.4實現貫穿多個事件的邏輯330
    14.4.1檢測按鍵順序330
    14.4.2對事件源作出反應333
    14.4.3通知賬戶何時透支335
    14.5應該何時使用IObservable?337
    小結338
    5章並發消息傳遞339
    15.1對共享可變狀態的需要339
    15.2理解並發消息傳遞341
    15.2.1在C#中實現代理343
    15.2.2開始使用代理344
    15.2.3使用代理處理並發請求346
    15.2.4代理與角色349
    15.3“函數式API”與“基於代理的實現”350
    15.3.1代理作為實現細節351
    15.3.2將代理隱藏於常規API的背後352
    15.4LOB應用程序中的並發消息傳遞353
    15.4.1使用代理來同步對賬戶數據的訪問354
    15.4.2保管賬戶的注冊表356
    15.4.3代理不是一個對像357
    15.4.4融會貫通359
    小結361
    結束語:接下來呢?363
    內容虛線

    內容簡介

    size="789x11"

    函數式編程將改變你思考代碼的方式!利用FP技術,C#開發人員可極大地提升狀態管理、並發處理和事件處理能力,並更好地長期維護代碼。C#提供了靈活性,使你能充分利用函數式技術的優勢。《C#函數式編程 編寫更優質的C#代碼》從全新視角賦予你強大力量。
    《C#函數式編程 編寫更優質的C#代碼》引導你在C#語言中使用函數式思想來解決現實問題;首先介紹函數式編程的原理,分析如何借助C#語言特性實現函數式編程,然後在多個緊貼實用的示例的引導下,講述函數組合、數據流編程、不可變數據結構以及使用LINQ構建單子組合等主題。

    作者簡介

    (美)恩裡科·博南諾(Enrico Buonanno) 著 張久修 譯

    size="43x26"

    恩裡科·博南諾(Enrico Buonanno),畢業於哥倫比亞大學計算機科學繫,是一名出色的開發人員、架構師和培訓師,擁有15年的工作經驗。

    "
     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部