Python如何实现SICP中的赋值与局部状态管理,形成长尾词疑问?
- 内容介绍
- 文章标签
- 相关推荐
本文共计6638个文字,预计阅读时间需要27分钟。
模块化是指将系统划分为一些+内聚+(coherent)的部分,这些部分可以分别进行开发和维护。在哲学上,程序的组织方式与我们对于被模拟系统的认知信息息息相关。
所谓模块化,也即使这些系统能够“自然地”划分为一些内聚(coherent)的部分,使这些部分可以分别进行开发和维护。
在哲学上,组织程序的方式与我们对被模拟系统的认识息息相关。接下来我们要研究两种特色很鲜明的组织策略,它们源自于对于系统结构的两种非常不同的“世界观”(world views)。
第一种策略将注意力集中在对象(objects)上,将一个大型系统看成不同对象的集合,它们的状态和行为可能随着时间不断变化。
另一种组织策略将注意力集中在流过系统的信息流(streams of information)上,非常像EE工程师观察一个信号处理系统。
这两种策略都对程序设计提出了具有重要意义的语言要求。对于对象途径而言,我们必须关注对象可以怎样变化而又保持其标识(identity)。这将迫使我们抛弃前面说讲过的计算的代换模型,转向更机械式的,理论上也更不容易把握的计算的环境模型(environment model)。在处理对象、变化和标识时,各种困难的根源在于我们需要在这一计算模型中与时间搏斗,如果引入并发后还将变得更糟糕。流方式将我们的模型中的模拟时间与求值过程中的事件发生顺序进行解耦,我们将通过一种称为延时求值(lazy evaluation)的技术做到这一点。
本文共计6638个文字,预计阅读时间需要27分钟。
模块化是指将系统划分为一些+内聚+(coherent)的部分,这些部分可以分别进行开发和维护。在哲学上,程序的组织方式与我们对于被模拟系统的认知信息息息相关。
所谓模块化,也即使这些系统能够“自然地”划分为一些内聚(coherent)的部分,使这些部分可以分别进行开发和维护。
在哲学上,组织程序的方式与我们对被模拟系统的认识息息相关。接下来我们要研究两种特色很鲜明的组织策略,它们源自于对于系统结构的两种非常不同的“世界观”(world views)。
第一种策略将注意力集中在对象(objects)上,将一个大型系统看成不同对象的集合,它们的状态和行为可能随着时间不断变化。
另一种组织策略将注意力集中在流过系统的信息流(streams of information)上,非常像EE工程师观察一个信号处理系统。
这两种策略都对程序设计提出了具有重要意义的语言要求。对于对象途径而言,我们必须关注对象可以怎样变化而又保持其标识(identity)。这将迫使我们抛弃前面说讲过的计算的代换模型,转向更机械式的,理论上也更不容易把握的计算的环境模型(environment model)。在处理对象、变化和标识时,各种困难的根源在于我们需要在这一计算模型中与时间搏斗,如果引入并发后还将变得更糟糕。流方式将我们的模型中的模拟时间与求值过程中的事件发生顺序进行解耦,我们将通过一种称为延时求值(lazy evaluation)的技术做到这一点。

