【发布时间】:2018-04-30 09:04:03
【问题描述】:
Haskell 中的print 是纯函数吗?为什么或者为什么不?我认为不是,因为它并不总是返回与纯函数应该返回的值相同的值。
【问题讨论】:
-
print返回什么? -
所有内置的不纯函数名称中都有
unsafe这个词。所以print是纯粹的。给定相同的参数,它返回相同的结果。 -
@4castle 不一定,通常
unsafe是关于功能不全的。 -
@freestyle 好吧,也就是说还有其他函数的名称中也包含
unsafe。这与 4castle 所说的并不完全相反。我也不确定是否有任何 builtin 函数使用您所说的约定(只有提到的 4castle 类型的内置函数,如unsafeInterleaveIO和reallyUnsafePtrEquality#)。
标签: haskell io monads io-monad pure-function