小编lzb*_*rdo的帖子

为什么此Haskell函数的输出是IO字符串而不是字符串

我正在通过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,没有任何问题)。

string io monads haskell bind

0
推荐指数
1
解决办法
115
查看次数

标签 统计

bind ×1

haskell ×1

io ×1

monads ×1

string ×1