《GNU Emacs Lisp编程入门》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)Robert J.Chassell著;毛文涛,吕芳译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2001
  • ISBN:711108862X
  • 页数:202 页
图书介绍:

第1章 列表处理 1

1.1 Lisp列表 1

1.1.1 Lisp原子 1

1.1.2 列表中的空格 2

1.1.3 GNU Emacs帮助你输入列表 3

1.2 运行一个程序 3

1.3 产生错误消息 4

1.4 符号名和函数定义 5

1.5 Lisp解释器 5

1.6 求值 6

1.7 变量 7

1.8 参量 8

1.8.1 参量的数据类型 9

1.8.2 作为变量和列表的值的参量 10

1.8.3 数目可变的参量 10

1.8.4 用一个错误类型的数据对象作为参量 10

1.8.5 message函数 11

1.9 给一个变量赋值 12

1.9.1 使用set函数 13

1.9.2 使用setq函数 13

1.9.3 计数 14

1.10 小结 15

1.11 练习 15

第2章 求值实践 16

2.1 缓冲区名 16

2.2 获得缓冲区 17

2.3 切换缓冲区 18

2.4 缓冲区大小和位点的定位 19

2.5 练习 20

第3章 如何编写函数定义 21

3.1 defun特殊表 21

3.2 安装函数定义 23

3.3 使函数成为交互函数 24

3.4 interactive函数的不同选项 25

3.5 永久地安装代码 26

3.6 let函数 27

3.6.1 let表达式的各个部分 27

3.6.2 let表达式例子 28

3.6.3 let语句中的未初始化变量 29

3.7 if特殊表 29

3.8 if-then-else表达式 31

3.9 Lisp中的真与假 32

3.10 save-excursion函数 33

3.11 回顾 35

3.12 练习 37

第4章 与缓冲区有关的函数 38

4.1 查找更多的信息 38

4.2 简化的beginning-of-buffer函数定义 38

4.3 make-whole-buffer函数的定义 40

4.4 append-to-buffer函数的定义 41

4.4.1 append-to-buffer函数的交互表达式 42

4.4.2 append-to-buffer函数体 42

4.4.3 append-to-buffer函数中的save-excursion 43

4.5 回顾 45

4.6 练习 46

第5章 更复杂的函数 47

5.1 copy-to-buffer函数的定义 47

5.2 insert-buffer函数的定义 48

5.2.1 insert-buffer函数中的交互表达式 48

5.2.2 insert-buffer函数体 49

5.2.3 用if表达式(而不是or表达式)编写的insert-buffer函数 49

5.2.4 函数体中的or表达式 50

5.2.5 insert-buffer函数中的let表达式 51

5.3 beginning-of-buffer函数的完整定义 52

5.3.1 可选参量 52

5.3.2 带参量的beginning-of-buffer函数 53

5.3.3 完整的beginning-of-buffer函数 55

5.4 回顾 56

5.5 ?optional参量练习 57

第6章 变窄和增宽 58

6.1 save-restriction特殊表 58

6.2 what-line函数 59

6.3 练习:变窄 60

第7章 基本函数:car、cdr、cons 61

7.1 car和cdr函数 61

7.2 cons函数 63

7.3 nthcdr函数 64

7.4 setcar函数 65

7.5 setcdr函数 66

7.6 练习 67

第8章 剪切和存储文本 68

8.1 zap-to-char函数 69

8.1.1 interactive表达式 69

8.1.2 zap-to-char函数体 70

8.1.3 search-forward函数 70

8.1.4 progn函数 71

8.1.5 总结zap-to-char函数 71

8.1.6 第18版中zap-to-char函数的实现方法 72

8.1.7 progn表达式主体 73

8.2 kill-region函数 74

8.3 delete-region函数:接触C 75

8.4 用defvar初始化变量 76

8.5 copy-region-as-kill函数 77

8.6 回顾 82

8.7 查找练习 83

第9章 列表是如何实现的 85

第10章 找回文本 88

10.1 kill环总览 88

10.2 kill-ring-yank-pointer变量 88

10.3 练习:使用yank函数和nthcdr函数 89

第11章 循环和递归 90

11.1 while 90

11.1.1 while循环和列表 91

11.1.2 一个例子:print-elements-of-list 92

11.1.3 使用增量计数器的循环 93

11.1.4 使用减量计数器的循环 96

11.2 递归 98

11.2.1 使用列表的递归函数 99

11.2.2 用递归算法代替计数器 100

11.2.3 使用cond的递归例子 102

11.3 有关循环表达式的练习 102

第12章 正则表达式查询 104

12.1 查询sentence-end的正则表达式 104

12.2 re-search-forward函数 105

12.3 forward-sentence函数 106

12.4 forward-paragraph:函数的金矿 109

12.5 创建自己的“TAGS”文件 115

12.6 回顾 116

12.7 练习:使用re-search-forward 117

第13章 计数:重复和正则表达式 118

13.1 count-words-region函数 118

13.2 用递归的方法实现单词计数 123

13.3 练习:统计标点符号的数量 127

第14章 统计函数定义中的单词数 128

14.1 计数什么? 128

14.2 单词或者符号是由什么构成的? 129

14.3 count-words-in-defun函数 130

14.4 在一个文件中统计几个函数定义的单词数 132

14.5 查找文件 133

14.6 lengths-list-file函数详解 134

14.7 在不同文件中统计几个函数定义的单词数 135

14.8 在不同文件中递归地统计单词数 137

14.9 为图形显示准备数据 138

14.9.1 对列表排序 138

14.9.2 制作一个文件列表 139

第15章 准备柱型图 144

15.1 graph-body-print函数 148

15.2 recursive-graph-body-print函数 150

15.3 需要打印的坐标轴 151

15.4 练习 151

第16章 配置你的“.emacs”文件 152

16.1 全站点的初始化文件 152

16.2 为一项任务设置变量 153

16.3 开始改变“.emacs”文件 153

16.4 文本和自动填充模式 154

16.5 邮件别名 156

16.6 缩排模式 156

16.7 一些绑定键 156

16.8 加载文件 157

16.9 自动加载 158

16.10 一个简单的功能扩充:line-to-top-of-window 159

16.11 键图 161

16.12 X11的颜色 162

16.13 V19中的小技巧 163

16.14 修改模式行 163

第17章 调试 165

17.1 debug 165

17.2 debug-on-entry 166

17.3 debug-on-quit和(debug) 168

17.4 源代码级调试器edebug 168

17.5 调试练习 170

第18章 结论 171

附录A the-the函数 173

附录B kill环的处理 175

B.1 rotate-yank-pointer函数 175

B.2 yank函数 180

B.3 yank-pop函数 182

附录C 带坐标轴的图 184

C.1 print-graph函数的变量列表 185

C.2 print-Y-axis函数 185

C.2.1 题外话:计算余数 186

C.2.2 构造一个Y轴元素 188

C.2.3 创建Y坐标轴 189

C.2.4 print-Y-axis函数的最后形式 190

C.3 print-X-axis函数 190

C.4 打印整个图形 194

C.4.1 测试print-graph函数 197

C.4.2 绘制函数中单词和符号数的图形 198

C.4.3 打印出来的图形 202