哪个漂亮的打印库?
所以从乍一看,我可以看到5个漂亮的打印库:
- 好老HughesPJ在漂亮
- WL-pprint,演员
- WL-pprint-的terminfo
- WL-pprint
- ANSI-WL-pprint
- WL-pprint文本
哦,等等,是6? 6个漂亮的打印库…不用等,我们再来。
无论如何,除了HughesPJ,他们都是Wadler-Leijen。 我的理解是,WL更简单更快,所以可能是新代码的首选。
wl-pprint和wl-pprint-extras似乎是一样的…我不能说什么是关于后者的“额外”,或者“Free”在这里意味着什么(模块是Text.PrettyPrint.Free)。
wl-pprint-terminfo和ansi-wl-pprint都似乎是ANSIterminal颜色的变体,而且似乎是相同的,除了wl-pprint-terminfo没有任何文档。
wl-pprint-text当然使用文本。 我不知道有多less差距,实际上使速度。
让我担心的是,他们中的很多人都有很多发行版。 这意味着他们已经添加了function,修正了错误等。但是他们是否都有相同的错误修复? 我倾向于喜欢ansi-wl-pprint,因为它有文档,最后上传的时间是2012年,并且有一些版本暗示着作者仍然在上面。
但是我不确定。 任何人有任何build议? 而且我相信其他人也同意5个几乎不太完美的复制粘贴模块可以做一些整合。
没有特别的顺序:
-
Text.PrettyPrint.Free
的“Free”表示免费的monad ,根据软件包描述:“基于Wadler / Leijen漂亮打印机的免费monad”; 它的Doc
types在另一个types上被参数化,并且它有一个Monad
实例,允许你在Doc
值中embedded“效果”。 这是由wl-pprint-terminfo使用来添加格式化function; 这不是一个竞争的软件包,而是一个作者的扩展库。 请参阅wl-pprint-extras文档中与wl-pprint列表相比的新增内容列表,以获取关于添加内容的更多详细信息。 -
wl-pprint-terminfo使用terminfo包来进行格式化,所以它只能在POSIX-y系统上运行,而ansi-wl-pprint使用的是ansi-terminal软件包,所以它可以在Windows上运行。
-
wl-pprint-text如果你已经使用
Text
,可能会很有用,但是除非你真的使用漂亮的打印机,否则不会有太大的性能影响。 这不完全是一个大规模的计算密集型任务。
除非我有特定的要求,否则我可能只是使用漂亮的包,因为它是启动包之一,因此可以在任何地方使用。 如果我想要格式化的话,我会selectansi-wl-pprint,如果我使用的是Text
,则selectwl-pprint-text,但是除此之外,我并没有真正看到使用第三方库的特别令人信服的理由。