Haskell fmap(+1)$read“[1]”给出错误

Haskell fmap(+1)$read“[1]”给出错误,haskell,Haskell,当我输入repl时 fmap+1$read[1] 我希望得到[2],但得到的却是错误: 没有因使用“it”而产生的函子f0实例 不幸的是,这对我没有帮助。谁能给我解释一下这段代码有什么问题。它只是不知道把你的值读入什么类型。通过显式指定类型来帮助它: fmap (+1) $ (read "[1]" :: [Int]) 尝试显式地为它指定一个类型,例如fmap+1$read[1]::[Int]最近,您几乎不应该使用read,因为如果出现解析错误,它会导致程序崩溃。使用readMaybe之类的工具

当我输入repl时 fmap+1$read[1] 我希望得到[2],但得到的却是错误:

没有因使用“it”而产生的函子f0实例


不幸的是,这对我没有帮助。谁能给我解释一下这段代码有什么问题。

它只是不知道把你的值读入什么类型。通过显式指定类型来帮助它:

fmap (+1) $ (read "[1]" :: [Int])

尝试显式地为它指定一个类型,例如fmap+1$read[1]::[Int]最近,您几乎不应该使用read,因为如果出现解析错误,它会导致程序崩溃。使用readMaybe之类的工具。或者只使用map。。。