23

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

Hackage 上你最喜欢的“隐藏宝石”包是哪个?

4

6 回答 6

16

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

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

现在您可以将两者结合起来

Conal Elliott 的向量空间很好地封装了许多线性代数函数,也让我更接近于对类型族感到舒适。

统计数据(同样由 O'Sullivan 撰写)很方便,因为我更喜欢在 Haskell 中工作而不是在 R 中工作。

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

于 2010-05-23T13:58:03.527 回答
12

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

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

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

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

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

Atom - 我想要一个使用它的借口,但还没有得到一个。

于 2010-05-23T15:54:07.087 回答
8

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

于 2010-05-23T16:45:34.387 回答
4

我喜欢不要图书馆:

main = don't $ do
   name <- getLine
   putStrLn $ "hello " ++ name
于 2010-05-28T18:01:20.983 回答
3

I like interlude - for when those darn 'head: undefined' messages just won't go away!

于 2010-05-25T14:47:37.167 回答
3

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

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

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

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

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

于 2010-05-23T19:10:16.610 回答