问问题
260 次
1 回答
4
Haskell 仅支持(单子)上下文中的值方面的变量。一旦你看那些,有些像MVar
确实可以是空的。
但是,如果您想表示一个值的简单可空性,这Maybe a
是一种完美的方法,它与实际值是对可变事物或不可变事物的引用分开。
展开和说明:
newIORef :: a -> IO (IORef a)
但是我们可以很容易地写成newEmptyIORef
这样:
newEmptyIORef :: IO (IORef (Maybe a))
newEmptyIORef = newIORef Nothing
请注意Maybe (IORef a) ≠ IORef (Maybe a)
.
于 2015-10-30T15:36:58.997 回答