我刚刚读了一篇关于量子物理学的文章。一件有趣的事情是,在 Haskell 程序员看来,这两个领域之间有一些相似之处。
首先,量子世界中的测量似乎类似于 Haskell 中的惰性求值:如果你不测量,你不知道猫是活的还是死的。如果不评估,则不知道值是定义的还是undefined
.
其次,在量子中,我们有EPR 悖论,这可以通过与速度高于光速的相互作用来解释,或者等同于时间机器。在 Haskell 中,正如我们在Assembly: Circular Programming with Recursive do -Monad.Reader 第 6 期中所见,我们可以通过使用 recursive 访问来自未来的值do
。
最后,在量子中,我们必须区分熵永不减少的可观察世界和时间在两个方向上等价的“纯”量子世界。在 Haskell 中,我们拥有IO()
描述程序实际执行的世界,以及永远不会有副作用的纯函数世界,并且值从不依赖于评估顺序。
所以我猜上述事实表明这两个领域之间存在一些相互联系。这会产生更有趣的后果吗?例如,虽然我谈到了 EPR 悖论,但我不知道如何创建一个 Haskell 程序来模拟这种情况:一个函数创建两个值,稍后对其中一个的求值会影响另一个(我认为这些值必须有IO()
类型,但我不知道如何将它们放在一起)。