我刚读了一篇关于量子物理学的文章。有趣的是,在Haskell程序员看来,这两个领域有一些相似之处。
首先,量子世界中的测量似乎类似于Haskell中的懒惰评估:如果你不测量,你就不知道猫是活的还是死的。如果不进行计算,则不知道该值是定义的还是undefined的。
第二,在量子方面,我们有EPR悖论,它可以用速度高于光速的相互作用来解释,也可以用时间机器来解释。在Haskell中,正如我们在程序集:递归do -Monad.Reader问题6的循环编程中看到的那样,我们可以使用递归do访问来自未来的值。
最后,在量子中,我们必须区分熵永不减少的可观测世界和时间在两个方向上相等的“纯”量子世界。在Haskell中,我们有描述程序实际操作的IO()世界,以及没有副作用的纯功能世界,并且这些值从来不依赖于评估顺序。
因此,我想上述事实表明,这两个领域之间存在着某种相互联系。这会有更有趣的结果吗?例如,虽然我已经讨论了EPR悖论,但我不知道如何创建一个Haskell程序来模拟这个问题:一个函数创建两个值,然后对其中一个值的计算将影响另一个值(我认为这些值必须具有IO()类型,但我不知道如何将它们组合在一起)。
发布于 2013-08-27 13:42:14
Haskell已经作为一种量子编程语言使用了一段时间。
主要的参照点是Haskell的Quipper。
和更多有趣的东西- http://www.kurzweilai.net/quipper-language-makes-quantum-computers-easier-to-program
https://stackoverflow.com/questions/18465702
复制相似问题