我有一个字符串列表,并尝试了以下代码:
ls = [ "banana", "mango", "orange" ]
main = do
map PutStrLn list_of_strings
这没起作用,我不明白为什么。
ghc print-list.hs
print-list.hs:3:0:
Couldn't match expected type `IO t' against inferred type `[IO ()]'
In the expression: main
When checking the type of the function `main'
任何提示?我想这与map返回列表而不是值有关,但我没有找到简单的方法来解决这个问题。
目前,我知道打印字符串列表的唯一方法是编写一个函数来迭代列表,打印每个元素(如果列表是[a],则打印,但如果是(a:b),则打印并递归)。但是,使用map会更简单...
谢谢!
main
的类型应该是IO ()
,从未知道它可以是forall t. IO t
。这表明我们每天都能学到新东西 :-) - Tom LokhorstIO String
,我想将它映射到IO Int
并打印出这个Int
。如何在 一行 中完成?这可能吗? - Nawaz