我在他们的wiki上阅读了Haskell中IO monad的更深层次的工作, 我遇到了这段代码
main = do a <- ask "What is your name?"
b <- ask "How old are you?"
return ()
ask s = do putStr s
readLn
这对我来说很有意义。ask 函数应该打印出给它的字符串并返回可以传递给 a 或 b 的行。
但是将其加载到 GHCi 中我遇到了问题。告诉我没有使用 ask 读取的实例,并且我可以导入 GHC.Read。那不应该是必要的。这段代码在 Haskell.org 上,所以我认为它应该可以工作。语言中的某些内容是否发生了变化,或者我是否缺少一些重要的理解?