3.5流

3.5流

作为一个模型的工具,我们对赋值有了很好的理解,例如,赋值语句能引起的一些复杂的问题。
是时间问一下,我们是否能以不同的方式做事,以避免这些问题。在这一部分中,我们探索一个可行的方法,
来模型化状态,使用的数据结构被叫做流。正如我们将要看到的,流能够迁移出一些模型化的状态的复杂性。

让我们回顾一下复杂性的来源。在模型化真实世界中的现象的尝试中,我们做了一些很明显的合理的决定:
我们对真实世界中有局部状态的对象建模,是用有局部状态的计算对象。
我们用计算机中的时间变化来标识出真实世界中的时间变化。
用对模型对象的局部变量的赋值的方式,我们实现了计算机中的模型对象的状态的时间变化。

有其它的方法吗?我们能避免标识计算机中的时间和模型世界中的时间吗?
为了模型化一个真实的世界中的现象,我们必须用时间使得模型改变吗?
考虑一下数学函数的问题。我们能描述一个变量x的随时间改变的行为,作为一个时间的
函数x(t).如果我们聚焦于x的一个个值,我们认为它是一个变量。然而,如果,
我们聚焦于值的整个的时间的历史,我们没有强调变化,函数本身没有改变。

如果时间被以离散化的步骤进行度量,然后我们能把一个时间的函数建模成一个序列。
在这个部分中,我们能看到如何对序列中的改变进行建模,在序列中表示了被建模系统的
的时间历史。为了完成这个任务,我们介绍了一个新的数据结构,叫做流。从一个抽象的
视角来看,一个流就是一个序列。然而,我们将发现流的正常的实现就是列表。列表没有
完全地揭示出流处理的威力。作为一个可选的方案,我们介绍了延迟解释的技术。
它让我们能够把非常大的甚至是无限的序列表示为流。

流处理让我们能够对有状态的系统进行建模,而不使用赋值或者是可修改的数据。
在理论方面和实践方面,这都是重要的进步,因为我们能构建模型,来避免引入赋值的缺陷。
另一个方面,流的框架增加了它自身的难度,建模技术导致了更模块化和更容易维持系统保留
它的开放性的问题。

猜你喜欢

转载自blog.csdn.net/gggwfn1982/article/details/81699098
3.5
今日推荐