0916~0919_開學季語言展

大神降臨-JavaScript前端大師養成祕笈

達洋貓《櫻花樹》一卡通

達洋貓《櫻花樹》一卡通

【開學大作戰】一卡通全面限時9折起

  • 9 441
    490

活動訊息

想找書的時候,特別想偷看網友的書櫃... 原來大家都在看這本 ↓↓↓

用閱讀開啟視野,讓書成為照亮你人生的光
【金石堂選書】本月推薦您這些好書👉 快來看看

內容簡介

在後端,函數式語言層出不窮。在前端,函數式最後的邊界也已經被漸漸打破。Scala的Scala.js、Clojure的ClojureScript都試圖同構移向前端。原生JavaScript其實也可以透過豐富的函數庫,讓前端的函數式程式設計一樣的舒適和優雅。

本書涵蓋大部分函數式程式設計思想,包括JavaScript的函數式支援,Clojure風格的集合、遞迴、函數組合、巨集、模式匹配、實用的Monads,以及前端的併發程式設計。

適用:想要瞭解函數式程式設計的JavaScript程式師,或想學習JavaScript的函數式程式師。

作者

歐陽繼超

ThoughtWorks高級諮詢師,活躍開源貢獻者(github.com/jcouyang),熱愛程式設計與寫作。

目錄

前言

01 函數式JavaScript
1.1 JavaScript 也是函數式語言嗎
1.2 作為函數式語言,JavaScript 還差些什麼
1.3 Underscore 你錯了
1.4 小結 .

02 集合
2.1 集合的使用
2.2 持久性資料結構
2.3 不可變性
2.4 惰性序列
2.5 小結

03 遞迴
3.1 不可變性與遞迴
3.2 柯里悖論
3.3 尾遞迴最佳化
3.4 蹦跳樂園(Trampoline)
3.5 小結

04 函數組合
4.1 Underscore 到底做錯了什麼
4.2 柯里化有什麼用
4.3 Transducer
4.4 組合與管線
4.5 小結

05 Macro 巨集
5.1 什麼是REPL
5.2 為什麼要語法糖
5.3 Sweet.js
5.4 Infi x Macro 和Operator
5.5 小結

06 模式比對
6.1 Destructure
6.2 Arity 函數
6.3 Fizz Buzz
6.4 代數資料類型(ADT)
6.5 小結

07 Monadic 程式設計
7.1 鏈式呼叫
7.2 Monad
7.3 走鋼絲
7.4 Monad 在JavaScript 中的應用
7.5 Reactive 程式設計
7.6 小結

08 平行處理程式設計
8.1 什麼是平行處理
8.2 通訊順序處理程序(CSP)
8.3 使用Generator 實現CSP
8.4 實戰CSP
8.5 小結

參考資料

序/導讀



函數式程式設計可以說是非常古老的程式設計方式,但是近年來函數式程式設計越來越受到人們的關注。不管是Google 力推的Go、學術派的Scala 與Haskell,還是Lisp 的新語言Clojure,這些新的函數式程式語言都越來越受到人們的關注。

當然不僅是後端函數式程式語言層出不窮,前端也不甘示弱。雖然前端瀏覽器只支援一種語言——JavaScript,但是能支援函數式程式設計的JavaScript 函數庫越來越多,例如Functional JavaScript、Underscore、lodash 等。不僅如此,還有一些能編譯成JavaScript 的語言,能讓前端的函數式程式設計發揮到極致, 例如Haskell 的PureScript、Scala 的Scalajs、Clojure 的ClojureScript。

我上二段都以Clojure 結尾,是因為我喜歡把重點留到最後。Clojure 獨特於其他語言,它既是一種新的語言、一種函數式程式設計範式的語言,又流淌著古老的血液——Lisp。這是我選擇用Clojure 來詮釋函數式程式設計的原因之一。

為什麼我要選JavaScript 作為函數式程式設計的目標? Michael Fogus 用200 多頁向大家展示了不一樣的Functional JavaScript 程式設計方式,可惜Fogus 作為ClojureScript 編譯器的貢獻者,竟然選擇了Underscore作為函數庫,直接導致無法完全展示JavaScript 所能達到的函數式程式設計能力。有趣的是,ClojureScript 的作者把ClojureScript 的不可變(Immutable) 資料結構移植到JavaScript, 徹底將JavaScript 的函數式程式設計提升到用其他函數庫都完成不了的新高度。不僅如此,Mozilla 的Sweet.js(github.com/mozilla/sweet.js)更是完成了另一個突破——JavaScript 的macro,它雖然不能算是函數式的概念,但也算是Lisp 語言的一項獨門絕技。

這一切的一切,都讓我忍不住要幫Fogus 出一本續集,用JavaScript 實現其他函數式程式語言如Clojure 甚至是Haskell,讓大家進一步感受用JavaScript 這門不完美的語言同樣可以撰寫出優雅的函數式程式,以不一樣的方式思考和解決問題。於是不管你是想轉行JavaScript 的Clojure 開發者,還是想了解Clojure 或函數式程式設計的JavaScript 開發者,都可以在此找到一些啟發。

配送方式

  • 台灣
    • 國內宅配:本島、離島
    • 到店取貨:
      金石堂門市 不限金額免運費
      7-11便利商店 ok便利商店 萊爾富便利商店 全家便利商店
  • 海外
    • 國際快遞:全球
    • 港澳店取:
      ok便利商店 順豐 7-11便利商店

詳細資料

詳細資料

    • 語言
    • 中文繁體
    • 裝訂
    • 紙本平裝
    • ISBN
    • 9789863794813
    • 分級
    • 普通級
    • 頁數
    • 208
    • 商品規格
    • 23*17
    • 出版地
    • 台灣
    • 適讀年齡
    • 全齡適讀
    • 注音
    • 級別

商品評價

訂購/退換貨須知

加入金石堂 LINE 官方帳號『完成綁定』,隨時掌握出貨動態:

加入金石堂LINE官方帳號『完成綁定』,隨時掌握出貨動態
金石堂LINE官方帳號綁定教學

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

退換貨須知:

**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**

  • 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
    1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
    2. 依消費者要求所為之客製化給付。(客製化商品)
    3. 報紙、期刊或雜誌。(含MOOK、外文雜誌)
    4. 經消費者拆封之影音商品或電腦軟體。
    5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
    6. 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
  • 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
  • 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
  • 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
金石堂門市 全家便利商店 ok便利商店 萊爾富便利商店 7-11便利商店
World wide
活動ing