计算机中的组件是抽象自由的,在构建大系统时,理想与现实没有太大的不同
不动点:f 的不动点 Y 满足 f(Y)=Y
求不动点的具体思路:
求 x \sqrt x x,就是求 f ( y ) = x / y f(y)=x/y f(y)=x/y的不动点
我们希望将求不动点的过程封装成一个黑盒,然后通过这个盒子来求平方根
这个盒子接收的不仅是数,还要能接收函数和过程
在这个问题里,我们要传给它 f 和 x,然后输出的是一个计算平方根的函数
所以,这是一个生成函数的函数,一个生成通法的通法
函数 Function 和过程 Procedure:Pascal-like 语言里,和 function 的区别是有没有 return value,C-like 里面区别不大
关于 Lisp 的语法
用中缀表达式是这样的(a1+a2)*a3
我们希望的是,不管 a1,a2 是向量,或者电信号,声波的什么类型,我们的过程仍要有效
若 a1,a2 是多项式,最后的结果要是格式化好的多项式
希望任意来一种新类型的对象,都可以直接使用系统,而不会把系统弄乱
对现实世界的大型系统建模来构建大型程序
通过相互传递消息联系
流 streams
控制系统复杂度的方法:构建一门新的语言,强调系统的某个方面而隐藏某些细节
Y operator Y 运算符:在过程式语言中表达无限
(YF)=(F(YF))
了解 Lisp 解释的过程(process of interpretation):EVAL 求值 APPLY 应用的相互轮转 apply-eval loop
实现在有 Lisp 解释器的芯片(chip)