《lisp符号计算简明教程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:D.S.图尔兹基;姜新译
  • 出 版 社:科海总公司培训中心出版
  • 出版年份:1988
  • ISBN:
  • 页数:267 页
图书介绍:

引言:开始了解计算机 1

1.美与计算机 1

2.学习计算机的具体理由 1

3.计算机渗透到各个领域 1

4.计算机作为研究的工具 2

5.计算机与形式推理 3

6.程序就是描述 3

7.人工智能:机器真能思维吗? 4

第一章 函数和数据 5

1.1 引言 5

1.2 算术函数 5

1.3 整数除法 5

1.4 输入次序是重要的 6

1.5 符号 8

1.6 特殊符号T 与 NIL 8

1.7 一些简单谓词 9

1.8 谓词 EQUAL 10

1.9 把函数组合在一起 11

1.9.1 定义 SUB2 11

1.9.2 定义 ONE MOREP 12

1.9.3 在函数内部使用常量 18

1.10 谓词 NOT 14

1.10.1 否定一个谓词 15

1.11 函数的串联 16

1.12 错误 17

1.13 提要 18

扩展课题1 18

1.对象的类型 18

2.封闭性 19

3.逆函数 20

4.构造性的定义函数 20

5.现实世界有意识;计算机无意识 21

第二章 表 23

2.1 表是一种重要的数据类型 28

2.2 表的形式 23

2.8 表的长度 24

2.4 NIL:空表 24

2.5 表的内部表示法 25

2.6 CAR 和 CDR 函数 28

2.0.1 嵌套表的 CAR 和 CDR 29

2.6.2 NIL 的 CAR 和 CDR 30

2.7 CONS 81

2.7.1 CONS 和空表 83

2.7.2 用 CONS 构造嵌套的表 83

2.7.8 CONS 可以从一个空表开始造表 33

2.8 LIST 34

2.9 LENGTH 37

2.10 用 LIST 进行程序设计 87

2.10.1 从表中取出元素 88

10.2 拆开嵌套表 39

2.10.8 置换表的第一个元素 40

2.11 CONS 构造非表结构 40

2.12 提要 42

扩展课题2 43

1.CONS 与 CAR/CDR 的对称性 43

2.CDR 与封闭性 43

3.用表表示一进制算术 44

第三章 EVAL 表示法 46

8.1 引言 46

8.2 EVAL 函数 46

3.8 求值规则规定了 EVAL 的动作 46

8.4 EVAL 表示法可以做盒子表示法做的任何事情 47

8.5 我们为什么需要加引号? 48

3.6 错误加引号问题 49

3.7 造表的两种方法 49

8.8 用 EVAL 表示法定义函数 50

3.9 错误定义函数的四种情况 52

3.10 解释约束变量 52

8.11 提要 53

上机 54

1.运行 Lisp 54

2.终端键盘的布局 55

3.READ-EVAL-PRINT 循环 55

4.提示计算机用户 56

第一次键盘练习 57

扩展课题3 58

1.关于 LAMBDA 表示法的说明 58

2.无自变量的函数 58

3.动态域和变量的再约束 59

4.特殊形式 QUOTE 61

5.EVAL 和 APPLY 62

第四章 条件式 64

4.1 引言 64

4.2 特殊形式 IF 64

4.3 特殊形式 COND 65

4.4 用 T 作为条件 66

4.5 另外两个 COND 的例子 67

4.6 COND 与括号错 68

4.7 特殊形式 AND 与 OR 70

4.8 对 AND 与 OR 进行求值 70

4.9 构造复杂的谓词 71

4.10 AND 与 OR 为什么是条件式 73

4.11 条件式是可以互换的 73

4.12 提要 75

扩展课题4 75

1.布尔函数 75

2.真值表 76

8.DEMORGAN 定理 77

第五章 全局变量与附加作用 79

5.1 引言 79

5.2 SETQ 对变量赋值 79

5.3 BOUNDP 与 MAKUN BOUND 80

5.4 用全局变量进行程序设计 81

5.5 附加作用 82

5.6 提要 84

键盘练习 85

扩展课题5 86

1.SET 函数 86

2.重新约束全局变量 87

第六章 表数据结构 89

6.1 引言 89

6.2 一些有用的谓词 89

6.3 普通的表函数 90

6.3.1 REVERSE 90

6.3.2 APPEND 91

6.3.3 NCONS 92

6.3.4 LAST 98

6.3.5 NTH CDR 与 NTH 93

6.3.6 SUBST 94

6.4 表作为集合 95

6.4.1 UN ION 95

6.4.2 INTER SECTION 95

6.4.3 SETDIFFERENCE 96

6.4.4 ME MBER 96

6.5 用集合进行程序设计 97

6.6 表作为表格 99

6.6.1 ASSOC 100

6.6.2 SUBLIS 100

6.7 用表格进行程序设计 101

6.8 提要 104

键盘练习 105

扩展课题 107

1.EQ 对 EQUAL 107

2.共享结构 108

3.有破坏性的操作 108

3.1 RPLACA,RPLA CD和 DISPLA CE 109

3.2 NCONC 111

4.用破坏性操作进行程序设计 112

第七章 施用性操作符 114

7.1 引言 114

7.2 APPLY-TO-ALL 操作符 114

7.2.1 用APPLY-TO-ALL 处理表格 114

7.3 LAMBDA 表达式 116

7.4 FIND-IF 操作符 117

7.4.1 用FIND-IF写出 ASSOC 117

7.5 SUB SET 118

7.6 EVERY 120

7.7 REDUCE 操作符 121

7.8 提要 122

键盘练习 123

扩展课题7 126

1.恒等值 126

2.左简化对右简化 127

3.对多重表进行操作 128

4.MAP 类函数 129

第八章 递归 131

8.1 引言 131

8.2 马丁与龙 131

8.3 马丁算法的 Lisp型式 132

8.4 马丁再次访问龙 134

8.5 阶乘函数的 Lisp 型式 135

8.6 龙的梦 136

8.7 一个计算面包片的 Lisp 函数 136

8.8 递归的三条规则 137

8.9 马丁发现无穷递归 139

8.10 Lisp中的无穷递归 141

8.11 用递归建立表 142

8.12 两部分递归 144

8.13 在艺术与文学中的递归 146

8.14 提要 146

键盘练习 147

扩展课题8 150

1.结构上的递归 150

2.尾部递归 153

3.递归的数据结构 155

第九章 基本的输入/输出 158

9.1 引言 158

9.2 字符串 158

9.3 特殊形式 MSG 159

9.4 READ 函数 161

9.5 提要 162

键盘练习 168

扩展课题9 164

1.Lisp 1.5输出原函数 164

2.通过原函数定义 MSG 165

3.以点表示法进行打印 165

4.混合表示法 166

5.文件I/O 167

第十章 迭代 169

10.1 引言 169

10.2 特殊形式 PROG 169

10.2.1 特殊形式 GO 170

10.2.2 RETURN 函数 170

10.2.3 用 PROG 进行程序设计 172

10.3 特殊形式 LET 174

10.4 特殊形式 DO 175

10.5 如何写一个精巧的 Lisp 程序 176

10.6 提要 177

键盘练习 178

扩展课题10 180

1.PROG1, PROG2 和 PROGN 180

2.定义特殊形式的函数 181

3.定义 MACRO 型的函数 181

4.定义具有多个输入的函数 182

第十一章 特性表 184

11.1 引言 84

11.2 建立特性 184

11.3 检索特性 185

11.4 修改特性 185

11.5 用特性表进行程序设计 186

键盘练习 187

扩展课题11 191

1.特性表与函数定义 191

2.特性表的特殊用途 191

附录A.推荐深入阅读的文献 192

附录B.Lisp 语支 195

1.Maclisp, Common Lisp 和 Lisp Machine Lisp 195

2.Franz Lisp 195

3.UCI Lisp 和 TLC-LISP 196

4.Interlisp 196

5.P-LISP 196

附录C.Lisp的扩充部分 198

1. 简化定义 198

1.1 类型谓词 198

1.2 表函数 199

1.8 集合函数 199

1.4 IF 与 MSG 200

1.5 施用性操作符 201

2. MACLISP 扩充部分 203

附录D.练习答案 210