內容簡介
書籍
計算機書籍
《七周七語言:理解多種編程范型》共介紹了七種不同的程式語言。對於每種語言,分
別介紹了各自的特性、套用,以及編程入門知識和關鍵編程范型,還帶領讀者使用能夠代表該語言最重要特性的技術,解決某個不尋常的問題,使其充分掌握每種語言。《七周七語言:理解多種編程范型》適合從事程式設計工作的人員閱讀。
目錄
《七周七語言:理解多種編程范型》
第1章 簡介 1
1.1 不走尋常路 1
1.2 語言 2
1.3 誰應該買這本書 4
1.3.1 學會如何學習 4
1.3.2 亂世英雄 4
1.4 誰不應該買這本書 5
1.4.1 超越語法 5
1.4.2 不是安裝指南 6
1.4.3 不是編程參考 6
1.4.4 嚴格督促 6
1.5 最後一擊 7
第2章 ruby 8
2.1 ruby簡史 9
2.2 第一天:找個保姆 10
2.2.1 快速起步 10
2.2.2 從命令行執行ruby 10
2.2.3 ruby的編程模型 11
2.2.4 判斷 12
作譯者
本書提供作譯者介紹Bruce A. Tate RapidRed公司總裁,該公司主要為Ruby輕量級開發提供諮詢。他曾任職於IBM公司,並擔任過多家公司的客戶解決方案總監和CTO。著作有十餘本,包括榮獲Jolt大獎的Better, Faster, Lighter Java。
戴瑋 80後宅男,中科院自動化所在讀博士,熱愛機器學習與計算機視覺。編程喜C#、Ruby、Haskell而厭Java。
白明 Neusoft某開發部技術總監,擁有多年電信級軟體開發經驗;資深C程式設計師,對Common Lisp、Python等小眾語言也有涉獵;對開源軟體有著濃厚的興趣,曾先後貢獻了lcut、cbehave等
作品目錄
作者簡介
BruceA.TateRapidRed公司總裁,該公司主要為Ruby輕量級開發提供諮詢。他曾任職於IBM公司,並擔任過多家公司的客戶解決方案總監和CTO。著作有十餘本,包括榮獲Jolt大獎的Better,Faster,LighterJava。……
譯者簡介
戴瑋80後宅男,中科院自動化所在讀博士,熱愛機器學習與計算機視覺。編程喜C#、Ruby、Haskell而厭Java。白明Neusoft某開發部技術總監,擁有多年電信級軟體開發經驗;資深C程式設計師,對CommonLisp、Python等小眾語言也有涉獵;對開源軟體有著濃厚的興趣,曾先後貢獻了Ic……
序言
序言選自未完成的《擁抱編程年華》——Erlang語言的作者JoeArmstrong“Gmail編輯器不能正確排版引文格式。”“這可夠丟人的,”馬傑里說,“看來他們負責引文格式的程式設計師水平不行,企業文化也在走下坡路。”“我們該怎么辦?”“今後我們招募的程式設計師,一定得通讀過《追憶似水年華……
致謝
致謝這是我付出最多的一本書,但回報也同樣最為豐厚。在大家為我提供的各種幫助下,我才得以順利寫完此書。首先,我一定要感謝我的家人。Kayla和Julia,你們的寫作讓我驚喜。你們今後定能達到超乎自己想像的高度。Maggie,你是我的開心果,也是我的靈感源泉。感謝Ruby社區中的DaveThom……
第1章簡介
人們出於各種目的學習自然語言。學母語是為了生存,為了日常生活中與人正常交往。學外語的目的可就五花八門了。有時候,為了未來的職業發展或為了適應日益變化的生活環境,你不得不學習外語;但有時候,你決心征服一門外語,不是因為不得不這么做,而是因為發自內心地想學。外語能帶你領略一片未曾見過的風景。你甚至可能領……
1.1不走尋常路
1.2語言
1.3誰應該買這本書
1.3.1學會如何學習
1.3.2亂世英雄
1.4誰不應該買這本書
1.4.1超越語法
1.4.2不是安裝指南
1.4.3不是編程參考
1.4.4嚴格督促
1.5最後一擊
第2章Ruby
有糖相伴好下藥。——MaryPoppins……
2.1Ruby簡史
2.2第一天:找個保姆
2.2.1快速起步
2.2.2從命令行執行Ruby
2.2.3Ruby的編程模型
2.2.4判斷
2.2.5鴨子類型
2.2.6第一天我們學到了什麼
2.2.7第一天自習
2.3第二天:從天而降
2.3.1定義函式
2.3.2數組
2.3.3散列表
2.3.4代碼塊和yield
2.3.5定義類
2.3.6編寫Mixin
2.3.7模組、可枚舉和集合
2.3.8第二天我們學到了什麼
2.3.9第二天自習
2.4第三天:重大改變
2.4.1打開類
2.4.2使用method_missing
2.4.3模組
2.4.4第三天我們學到了什麼
2.4.5第三天自習
2.5趁熱打鐵
2.5.1核心優勢
2.5.2不足之處
2.5.3最後思考
第3章Io
問題不是“我們要乾點兒什麼”而是“我們有什麼不能幹”。——FerrisBueller……
3.1Io簡介
3.2第一天:逃學吧,輕鬆一下
3.2.1開場白
3.2.2對象、原型和繼承
3.2.3方法
3.2.4列表和映射
3.2.5true、false、nil以及單例
3.2.6SteveDekorte訪談錄
3.2.7第一天我們學到了什麼
3.2.8第一天自習
3.3第二天:香腸大王
3.3.1條件和循環
3.3.2運算符
3.3.3訊息
3.3.4反射
3.3.5第二天我們學到了什麼
3.3.6第二天自習
3.4第三天:花車遊行和各種奇妙經歷
3.4.1領域特定語言
3.4.2Io的method_missing
3.4.3並發
3.4.4第三天我們學到了什麼
3.4.5第三天自習
3.5趁熱打鐵
3.5.1核心優勢
3.5.2不足之處
3.5.3最後思考
第4章Prolog
DibbsSally。461-0192。——Raymond……
4.1關於Prolog
4.2第一天:一名優秀的司機
4.2.1基本概況
4.2.2基本推論和變數
4.2.3填空
4.2.4合一,第一部分
4.2.5實際套用中的Prolog
4.2.6第一天我們學到了什麼
4.2.7第一天自習
4.3第二天:離瓦普納法官開演還有15分鐘
4.3.1遞歸
4.3.2列表和元組
4.3.3列表與數學運算
4.3.4在兩個方向上使用規則
4.3.5第二天我們學到了什麼
4.3.6第二天自習
4.4第三天:維加斯的爆發
4.4.1解決數獨問題
4.4.2八皇后問題
4.4.3第三天我們學到了什麼
4.4.4第三天自習
4.5趁熱打鐵
4.5.1核心優勢
4.5.2不足之處
4.5.3最後思考
第5章Scala
我們不是綿羊。——剪刀手Edward……
5.1關於Scala
5.1.1與Java的密切關係
5.1.2沒有盲目崇拜
5.1.3MartinOdersky訪談錄
5.1.4函式式編程與並發
5.2第一天:山丘上的城堡
5.2.1Scala類型
5.2.2表達式與條件
5.2.3循環
5.2.4範圍與元組
5.2.5Scala中的類
5.2.6擴展類
5.2.7第一天我們學到了什麼
5.2.8第一天自習
5.3第二天:修剪灌木叢和其他新把戲
5.3.1對比var和val
5.3.2集合
5.3.3集合與函式
5.3.4第二天我們都學到了什麼
5.3.5第二天自習
5.4第三天:剪斷絨毛
5.4.1XML
5.4.2模式匹配
5.4.3並發
5.4.4實際中的並發
5.4.5第三天我們學到了什麼
5.4.6第三天自習
5.5趁熱打鐵
5.5.1核心優勢
5.5.2不足之處
5.5.3最後思考
第6章Erlang
你聽到了嗎?安德森先生。這是命運的轟隆聲。——特工Smith……
6.1Erlang簡介
6.1.1為並發量身打造
6.1.2JoeArmstrong博士訪談錄
6.2第一天:以常人面目出現
6.2.1新手上路
6.2.2注釋、變數和表達式
6.2.3原子、列表和元組
6.2.4模式匹配
6.2.5函式
6.2.6第一天我們學到了什麼
6.2.7第一天自習
6.3第二天:改變結構
6.3.1控制結構
6.3.2匿名函式
6.3.3列表和高階函式
6.3.4列表的一些高級概念
6.3.5第二天我們學到了什麼
6.3.6第二天自習
6.4第三天:紅藥丸
6.4.1基本並發原語
6.4.2同步訊息
6.4.3連結進程以獲得可靠性
6.4.4第三天我們學到了什麼
6.4.5第三天自習
6.5趁熱打鐵
6.5.1核心優勢
6.5.2不足之處
6.5.3最後思考
第7章Clojure
做或不做,不要嘗試。——Yoda(尤達大師)……
7.1Clojure入門
7.1.1一切皆Lisp
7.1.2JVM
7.1.3為並發更新
7.2第一天:訓練Luke
7.2.1調用基本函式
7.2.2字元串和字元
7.2.3布爾值和表達式
7.2.4列表、映射表、集合以及向量
7.2.5定義函式
7.2.6綁定
7.2.7匿名函式
7.2.8RichHickey訪談錄
7.2.9第一天我們學到了什麼
7.2.10第一天自習
7.3第二天:Yoda與原力
7.3.1用loop和recur遞歸
7.3.2序列
7.3.3延遲計算
7.3.4defrecord和protocol
7.3.5宏
7.3.6第二天我們學到了什麼
7.3.7第二天自習
7.4第三天:一瞥魔鬼
7.4.1引用和事務記憶體
7.4.2使用原子
7.4.3使用代理
7.4.4future
7.4.5還差什麼
7.4.6第三天我們學到了什麼
7.4.7第三天自習
7.5趁熱打鐵
7.5.1Lisp悖論
7.5.2核心優勢
7.5.3不足之處
7.5.4最後思考
第8章Haskell
邏輯是草地上幾隻吱吱作聲的小鳥在鳴叫。——Spock……
8.1Haskell簡介
8.2第一天:邏輯
8.2.1表達式和基本類型
8.2.2函式
8.2.3元組和列表
8.2.4生成列表
8.2.5PhilipWadler訪談錄
8.2.6第一天我們學到了什麼
8.2.7第一天自習
8.3第二天:Spock的超凡力量
8.3.1高階函式
8.3.2偏套用函式和柯里化
8.3.3惰性求值
8.3.4SimonPeyton-Jones訪談錄
8.3.5第二天我們學到了什麼
8.3.6第二天自習
8.4第三天:心靈融合
8.4.1類與類型
8.4.2monad
8.4.3第三天我們學到了什麼
8.4.4第三天自習
8.5趁熱打鐵
8.5.1核心優勢
8.5.2不足之處
8.5.3最後思考
第9章落幕時分
恭喜!你已經順利完成了全部七門程式語言的學習。或許你現在有所期待,希望最後這章會將這些語言分出個高下,選出哪些是勝利者,哪些是失敗者,然而,本書與勝敗毫不相干。本書所要關注的是如何激發你的思想火花。如今的你,也許與職業生涯早期的我十分相似——同是某個缺乏想像力的龐大項目組中的一員,深陷於各種各樣的商……
9.1編程模型
9.1.1面向對象(Ruby、Scala)
9.1.2原型編程(Io)
9.1.3約束-邏輯編程(Prolog)
9.1.4函式式編程(Scala、Erlang、Clojure、Haskell)
9.1.5范型演進之路
9.2並發
9.2.1控制可變狀態
9.2.2Io、Erlang和Scala中的actor
9.2.3future
9.2.4事務型記憶體
9.3編程結構
9.3.1列表解析
9.3.2monad
9.3.3匹配
9.3.4合一
9.4發現自己的鏇律
附錄參考書目
[Arm07]JoeArmstrong.ProgrammingErlang:SoftwareforaConcurrentWorld.ThePragmaticProgrammers,LLC,Raleigh,NC,andDallas,TX,2007.[Gra04]……
著作權聲明
著作權聲明Copyright©2010BruceA.Tate.OriginalEnglishlanguageedition,entitledSevenLanguagesinSevenWeeks:APragmaticGuidetoLearningProg……