没有空格与wl-pprint中的空文档连接

时间:2015-02-17 17:46:44

标签: haskell pretty-print

我正在使用wl-pprint输出数据类型,其字段呈现并用空格分隔。某些字段可以是Nothing,因此我将其呈现为empty。显然,我不想在空字符串旁边添加额外的空格。使用HughesPJ library很容易实现,因为<+>运算符以empty为单位。在wl-pprint中,<+>中的空格不是可选的。

给定一个测试Doc是否为空的函数,我自己很容易实现。我的另一个问题是,没有人需要检查空Doc吗?它被认为是我的算法设计的缺点吗?

1 个答案:

答案 0 :(得分:1)

这回答了“测试Doc是否为空”部分。

renderCompact为您提供SimpleDoc,您可以为SEmpty进行模式匹配。

看起来很懒惰,例如。

case ( renderCompact $ vcat $ repeat $ text "foobar" ) of 
   SEmpty -> True ; _ -> False