我正在通过learningyouahaskell.com学习Haskell,并想在完成输入/输出模块之前测试一些概念。尽管看起来很简单,但我仍无法用谷歌或笨拙的方式解决这个问题。
当我尝试运行以下代码时
getName = do
name <- getLine
return name
Run Code Online (Sandbox Code Playgroud)
的输出getName成为type IO String而不是的元素String,即使name绝对是aString
通过阅读文档和其他StackVverflow的问题,我无法弄清楚为什么当我声明getName为一个函数时会发生这种情况(当我直接使用bind <-操作时main,没有任何问题)。