我正在使用wl-pprint输出数据类型,其字段呈现并用空格分隔。某些字段可以是Nothing
,因此我将其呈现为empty
。显然,我不想在空字符串旁边添加额外的空格。使用HughesPJ library很容易实现,因为<+>
运算符以empty
为单位。在wl-pprint中,<+>
中的空格不是可选的。
给定一个测试Doc
是否为空的函数,我自己很容易实现。我的另一个问题是,没有人需要检查空Doc
吗?它被认为是我的算法设计的缺点吗?
答案 0 :(得分:1)
这回答了“测试Doc
是否为空”部分。
renderCompact
为您提供SimpleDoc
,您可以为SEmpty
进行模式匹配。
看起来很懒惰,例如。
case ( renderCompact $ vcat $ repeat $ text "foobar" ) of
SEmpty -> True ; _ -> False