哪个漂亮的打印库?

所以从乍一看,我可以看到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”; 它的Doctypes在另一个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,但是除此之外,我并没有真正看到使用第三方库的特别令人信服的理由。