使用IO中的mapM函数打印键值元组列表的内容(Haskell)



我在main=do块中有以下代码:

let finalList = mergeKey x

mergeKey采用类似[("Hi",1),("Hello",2),("Hello",3)]的键值对列表,并将具有相同键参数的所有值相加。所以finalList就是[("Hi",1),("Hello",5)]我想把这个列表输出到终端,这样我就知道我的函数mergeKey正在正常工作。然而,我对如何使用print来实现这一点感到困惑。我知道我将不得不使用mapM,因为finalList是一个列表,所以我尝试了这个:

mapM print finalList但是,它给了我一个意外的类型错误。我是不是用错了print和mapM函数?

您可以直接打印列表,因此print finalList应该可以工作。您可能得到的类型错误是mapM返回IO [a],而main应该返回IO ()。请尝试使用函数mapM_

最新更新