我知道我可以在这样的元组列表中逐行打印元组:
Prelude> mapM_ print [(1, 1), (2, 4), (3, 9)]
(1,1)
(2,4)
(3,9)
但是假设我想将其输出到CSV文件,我想输出这个
Prelude> ??? [(1, 1), (2, 4), (3, 9)]
1,1
2,4
3,9
我该怎么做?
答案 0 :(得分:7)
试试这个:
showTup :: (Show a, Show b) => (a,b) -> String
showTup (a,b) = (show a) ++ "," ++ (show b)
λ> mapM_ (putStrLn . showTup) [(1,1), (2,4), (3,9)]
1,1
2,4
3,9
由于Haskell非常棒,你可以编写一个将元组转换为字符串的函数,由于print
只是(putStrLn . show)
,你可以用你自己的函数替换show
。