【问题标题】:Which is your favorite "hidden gem" package on Hackage? [closed]Hackage 上你最喜欢的“隐藏宝石”包是哪个? [关闭]
【发布时间】:2010-05-23 09:07:31
【问题描述】:

Hackage 上有很多包,有些是众所周知的(如 HUnit),有些不太为人所知(如 AspectAG)。我想知道认为哪个包是值得更多用户使用的隐藏宝石。也许是一个有用的数据结构、monad 的助手、网络、测试......?

你最喜欢 Hackage 上的哪个“隐藏的 gem”包?

【问题讨论】:

标签: haskell package hackage


【解决方案1】:

Oleg Kiselyov 的Iteratee。我仍然不太明白它是如何工作的,但是当我需要快速读取 60,000 个文件并且没有时间弄清楚为什么正常的 Haskell 文件访问方法是好慢。

还有 Brian O'Sullivan 的 Attoparsec,根据我的经验,它在大型平面文件数据库等方面的性能确实比 Parsec 好得多。

现在你可以combine the two

Conal Elliott 的 Vector-space 很好地封装了许多线性代数函数,也让我更接近于对类型族感到满意。

Statistics(同样是 O'Sullivan)很方便,因为我更喜欢在 Haskell 中工作而不是在 R 中工作。

HXTCriterion 不是“隐藏的宝石”,但在我看来,它们应该得到更广泛的使用。

【讨论】:

    【解决方案2】:

    Vector - 快速数组变得容易(我不喜欢 Data.Array)。如果我只能投票给一个,那就是现在。

    Lazy Small Check(另见paper)进行详尽的测试。

    Cereal - 所有常见的数据结构都应该有 Binary 和 Serialize 实例。相信编译器会丢弃死代码。

    meldable-heap - 还没开始使用,但这是一个应该如何开发软件的例子!

    Chart - 在为我的论文和演示文稿制作图表时,它对我很有用。

    Atom - 我想找个借口使用它,但还没有。

    【讨论】:

      【解决方案3】:

      我经常使用的一些被低估的实用库:

      【讨论】:

      • 我知道这篇文章很旧,但下载 curl 库很棒,我讨厌写乏味的 Network.HTTP 代码只是为了下载网页的正文!
      【解决方案4】:

      我喜欢don't 库:

      main = don't $ do
         name <- getLine
         putStrLn $ "hello " ++ name
      

      【讨论】:

      • 是的,这是个玩笑,但也不是完全没用……就像注释掉一段代码一样。
      【解决方案5】:

      我预先警告这是自我推销,但我认为我的软件包值得更多的用户而不是我自己:)

      所以,timeplot 是一个从日志中绘制时间序列的工具。它有很多功能,请参阅广泛的tutorial(里面有很多图片)。

      例如,您可以使用它来查看重量级后台进程对响应时间的 25%、50% 和 90% 分位数的影响;或查看全天在线用户数。

      它是“以 Unix 方式”设计的:您获取任意日志并编写一个快速而简单的 awk 或 perl 脚本,将其转换为程序的输入(由“事件”组成:离散值脉冲,连续值脉冲和启动/停止脉冲)。

      它在分析日志数据方面对我非常有用,尤其是对于诊断某些“基础设施”性能问题:我查看系统活动图,发现看起来不像它应该的样子。

      【讨论】:

        【解决方案6】:

        我喜欢interlude - 因为那些该死的“head: undefined”消息不会消失!

        【讨论】: