gpt4 book ai didi

haskell - 为什么并发 Haskell 是非确定性的,而并行 Haskell 原语(par 和 pseq)是确定性的?

转载 作者:行者123 更新时间:2023-12-01 19:42:12 34 4
gpt4 key购买 nike

不太理解 Haskell 中并发和并行上下文中的决定论。一些例子会有所帮助。谢谢

最佳答案

处理纯值时,求值顺序并不重要。这本质上就是并行性的作用:并行评估纯值。与纯值相反,顺序通常对于具有副作用的操作很重要。同时运行操作称为并发

作为示例,考虑两个操作 putStr "foo"putStr "bar"。根据评估这两个操作的顺序,输出是“foobar”、“barfoo”或两者之间的任何状态。输出不确定,因为它取决于特定的评估顺序。

再举一个例子,考虑两个值 sum [1..10]5 * 3。无论这两者的评估顺序如何,它们总是会减少到相同的结果。这种决定论通常只能用纯值来保证。

关于haskell - 为什么并发 Haskell 是非确定性的,而并行 Haskell 原语(par 和 pseq)是确定性的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8582580/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com