Positioning SICP 3: Modularity, Objects, and State
Positioning SICP 3: Modularity, Objects, and State
作者:何岩,recreating.org出品,谢绝转载。
阅读SICP,站在Lisp发明者的上帝视角来思考:“我为什么要这么设计Lisp?”
0.前言:Why I design those concepts—Modularity, Objects, and State?为什么我要设计模块化,对象和状态这些概念?
为了,更简单的模拟物理世界。
我们看世界的视角有两种:
1)将世界看成由彼此对立的物质对象组成,即,Object View
2)将世界看成彼此始终相互作用的信息流构成,即,Stream View
虽然真实的世界是Stream的。但是如果我们人脑用Stream View很难理解和模拟试卷,所以为了简化,降低人脑负荷,我们采用Object View来简化的模拟真实世界。
而,我们生下来被教育的也正是Object View,对象世界观,我们都习惯于此,误以为真实的世界就真的只是Object组成,却不知道,还有另一种看世界的方式Stream View,而,佛经里的世界观就是Stream View,所以很难理解,但是又那么自洽。
我们用代码来对比一下Object view和Stream View,给自己找点感觉先:
有这样一个需求:银行账户account,取款withdraw,显示余额balance。
1)Bank Account with Object View
(define balanc 100)
(define (withdraw amount)
(if (>= balance amount)
(begin (set! balanc (- balance amount))
balance)
“Insufficient funds”))
2)Bank Account with Stream View
(define (stream-withdraw balance...