前言 1
第1章 環(huán)境準備
1.1 準備Java開發(fā)環(huán)境 4
1.2 準備Scala開發(fā)環(huán)境 6
1.3 JISP項目 6
1.4 SISP項目 7
第2章 開始構建簡單的解釋器
2.1 Hello REPL 10
2.2 Read Print Loop 13
2.3 算術表達式 14
第3章 數值解析
3.1 回顧 21
3.2 識別數值 24
3.3 前綴表達式 28
3.4 表達式求值 29
第4章 文本解析
4.1 文本和文本字面量 50
4.2 轉義字符——在字符串中包含字符串 51
4.3 整合解釋器 57
第5章 解釋器環(huán)境
5.1 命名作用域 59
5.2 變量定義 62
5.3 “不可變”命名 70
第6章 語句塊和結構化編程
6.1 do 74
6.2 let 78
第7章 邏輯運算和比較運算
7.1 邏輯判定true?和false? 86
7.2 比較運算 95
第8章 邏輯分支
8.1 if的實現 106
8.2 cond的實現 112
第9章 定義函數
9.1 具名函數和匿名函數 120
9.2 遞歸與循環(huán) 124
9.3 靜態(tài)綁定、動態(tài)綁定與閉包 134
第10章 List和Quote
10.1 Quote 148
10.2 宏和宏編程 154
10.3 LIST 156
10.4 工具函數 158
第11章 內置函數和解釋器模塊 177
第12章 Parsec的原理和組成
12.1 狀態(tài)管理 183
12.2 算子 191
隨書代碼 225
后記 226