目录 1
引言 1
第一章 LISP语言的程序和数据 1
1.1 基本数据类型S-表达式 1
1.2 LISP的程序结构 3
1.3 LISP语言的功能 6
练习一 8
补充一 8
第二章 符号原子 10
2.1 变量和赋值 10
2.2 符号原子的特性值和特性表 14
2.3 解释程序对LISP式求值 16
练习二 18
补充二 19
第三章 表处理(一) 22
3.1 CAR和CDR分别取表头、留表尾 22
3.2 表的构造和修改 24
3.3 序列 26
3.4 表的存贮的抽象表示 28
练习三 29
补充三 30
4.1 谓词 33
第四章 谓词和数 33
4.2 数 38
练习四 43
补充四 43
第五章 控制结构 45
5.1 基本控制式COND及其它分支控制 45
5.2 PROG及RETURN,GO 47
5.3 DO循环 49
练习五 51
补充五 52
6.1 DEFUN定义一个有名函数 58
第六章 自定义函数 58
6.2 简单的LISP程序举例 60
6.3 LAMBDA-表达式 64
6.4 泛函数FUNCALL,APPLY和MAPCAR 66
练习六 69
补充六 72
第七章 基本的输入输出函数 77
7.1 基本输入函数READ和READ-LINE 77
7.2 基本输出函数PRINT,PRIN1和PRINC 78
7.3 FORMAT格式输出 80
7.4 例 82
练习七 84
补充七 85
第八章 变量的类型、闭包和宏 88
8.1 约束变量和自由变量 88
8.2 函数闭包 91
8.3 宏 94
8.4 SETF 96
练习八 99
补充八 100
9.1 PUSH和POP是堆栈操作 102
第九章 表处理(二) 102
9.2 改变自变量的表结构的函数 105
9.3 联结表 107
练习九 108
补充九 110
第十章 数组、串和结构 114
10.1 数组 114
10.2 字符串 117
10.3 结构 119
10.4 例 123
补充十 126
练习十 126
第十一章 流和文件 131
11.1 一个生成顺序文件的LISP程序 131
11.2 流和路径 132
11.3 输入输出语句的完整形式 134
11.4 流可以作为内部文件 135
练习十一 137
补充十一 138
第十二章 LISP程序例 142
12.1 梵塔问题 142
12.2 把集合的元素分成等价类 144
12.3 编译简单的算术表达式 146
12.4 实现搜索 148
12.5 分类问题 152
12.6 皇后问题 154
12.7 拓扑排序 157
12.8 自修改函数例 163
附录Ⅰ 源程序的编辑 166
附录Ⅱ GCLISP解释程序工作方式 168
附录Ⅲ 本书介绍的GCLISP中的系统函数、特殊符 170
号、宏及系统变量索引 170
参考文献 174