Haskell Pretty Printing - 可访问的实用库

时间:2017-12-11 18:05:20

标签: haskell pretty-print

假设我有[("bird",3,44),("cat",534,3)] :: [(String,Int,Int)]。 la:

是获得漂亮打印结果的最简单方法
bird    3   44
cat   534    3

似乎有很多Haskell漂亮的打印库没有明确的喜好,也没有很多例子。

1 个答案:

答案 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