Pau*_*ers 1 printing haskell map
我知道我可以逐行打印元组列表中的元组,如下所示:
Prelude> mapM_ print [(1, 1), (2, 4), (3, 9)]
(1,1)
(2,4)
(3,9)
Run Code Online (Sandbox Code Playgroud)
但是假设我想将它输出到CSV文件,我想输出它
Prelude> ??? [(1, 1), (2, 4), (3, 9)]
1,1
2,4
3,9
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
试试这个:
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
Run Code Online (Sandbox Code Playgroud)
由于Haskell是如此真棒,你可以只写一个元组转换为字符串的函数,因为print仅仅是(putStrLn . show)可以替代show由自己的函数.