答案 0 :(得分:4)
Haskell仅根据(monadic)上下文中的值支持变量。一旦你看到那些,有些像MVar
这些确实是空的。
如果你想表示一个值的简单可空性,Maybe a
是一种完美的方法,可以将实际值与可变的东西或只是不可变的东西分开。
扩展和说明:
newIORef :: a -> IO (IORef a)
但我们可以轻易地写newEmptyIORef
:
newEmptyIORef :: IO (IORef (Maybe a))
newEmptyIORef = newIORef Nothing
请注意Maybe (IORef a) ≠ IORef (Maybe a)
。