假设我有[("bird",3,44),("cat",534,3)] :: [(String,Int,Int)]
。 la:
bird 3 44
cat 534 3
似乎有很多Haskell漂亮的打印库没有明确的喜好,也没有很多例子。
答案 0 :(得分:2)
大多数漂亮的打印库都围绕着替代布局(巧妙地选择何时添加换行符等)。对于类似的内容,请使用boxes
:
import Text.PrettyPrint.Boxes
import Data.List
table = [("bird",3,44),("cat",534,3)] :: [(String,Int,Int)]
cols = transpose [ [ animal, show n, show m ] | (animal, n, m) <- table ]
rendered = render . hsep 2 left . map (vcat left . map text) $ cols
putStr rendered
输出:
bird 3 44
cat 534 3