gpt4 book ai didi

haskell - 哪个漂亮的打印库?

转载 作者:行者123 更新时间:2023-12-03 07:21:09 25 4
gpt4 key购买 nike

所以从 hackage 中我就可以看到 5 个 pretty-print 库:

  • 漂亮的老HughesPJ
  • wl-pprint-extras
  • wl-pprint-terminfo
  • wl-pprint
  • ansi-wl-pprint
  • wl-pprint-text

哦等等,那是 6 吗? 6 个 pretty-print 库...不用等,我们会再来的。

无论如何,他们都是 Wadler-Leijen,当然除了 HughesPJ。我的理解是 WL 更简单、更快,因此可能是新代码的首选。

wl-pprint 和 wl-pprint-extras 似乎是相同的......我不知道后者的“额外”是什么,或者“免费”在这里意味着什么(模块是 Text.PrettyPrint.Free) .

wl-pprint-terminfo 和 ansi-wl-pprint 似乎都是 ANSI 终端颜色等的变体,并且看起来相同,只是 wl-pprint-terminfo 没有任何文档。

wl-pprint-text 当然使用 Text。我不知道实际速度有多大差异。

令我担心的是,其中许多都有很多版本。这意味着它们添加了功能、修复了错误等。但是它们都修复了相同的错误吗?我倾向于支持 ansi-wl-pprint,因为它有文档,最后一次上传是在 2012 年,并且有很多版本,这意味着作者仍在研究它。

但我不确定。有人有什么建议吗?我相信其他人也同意 5 个几乎但不完全是复制粘贴模块可以进行一些整合......

最佳答案

排名不分先后:

  • Text.PrettyPrint.Free 中的“Free”表示 free monad ,根据包描述:“基于 Wadler/Leijen pretty-print 的免费 monad”;它的 Doc 类型在另一种类型上参数化,并且它有一个 Monad 实例,允许您将“效果”嵌入到 Doc 值中。 wl-pprint-terminfo 使用它来添加格式化功能;它不是一个竞争包,而是同一作者的扩展库。请参阅 wl-pprint-extras' documentation 中的添加列表与wl-pprint's list相比了解有关其添加内容的更多详细信息。

  • wl-pprint-terminfo 使用 terminfo包进行格式化,因此它仅适用于 POSIX-y 系统,而 ansi-wl-pprint 使用 ansi-terminal包,因此它可以在 Windows 上运行。

  • 如果您已经在使用 Text,wl-pprint-text 可能会很有用,但除非您使用 pretty-print ,否则它不太可能对性能产生重大影响真的很重;这并不完全是一项大规模计算密集型任务。

除非我有特定要求,否则我可能只会使用 Pretty 软件包,因为它是引导软件包之一,因此随处可用。如果我想要格式化,我会选择 ansi-wl-pprint,如果我使用 Text,我会选择 wl-pprint-text,但除此之外,我真的没有看到一个特别令人信服的理由来使用第三方库。

关于haskell - 哪个漂亮的打印库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9761507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com