【问题标题】:Monadic impurity and Haskell's purity. How they are combined?Monadic 杂质和 Haskell 的纯度。它们是如何结合的?
【发布时间】:2013-01-10 10:31:11
【问题描述】:

monad 构造如何帮助保持纯度(在 Haskell 中)同时做不纯粹的事情?例如,当您提供print "Hello" 时,您是在执行纯代码还是不纯代码?这是一个非常微妙的细节,但有助于更好地理解函数式语言中纯度和杂质的概念。

【问题讨论】:

标签: haskell functional-programming monads


【解决方案1】:

表达式

print "Hello"

确实很纯净。因为它不打印任何东西,而是构造一些在执行时打印“Hello”的东西。

这是一个类比:

和尚在一张纸上写:

Go to a bordell and do filthy things with the prostitutes there.

我们可以因为僧侣通奸而指责他,仅仅因为他写了一个从事通奸的指示吗?

【讨论】:

  • 真实世界的 Haskell 确实如此。 +1
【解决方案2】:

stackoverflow 中的问题可能会回答你的问题:In what sense is the IO Monad pure?

简而言之,monad 本身是,但它可以发出不纯指令。 更具体地说,monad 可以被视为一系列可组合的计算描述。其中一些计算可能是脏的(即有副作用),但描述本身是完全纯净的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多