Hackage 上有很多包,有些是众所周知的(如 HUnit),有些不太为人所知(如 AspectAG)。我想知道您认为哪个软件包是值得更多用户使用的隐藏宝石。也许是一个有用的数据结构,monads 的助手,网络,测试,......?
Hackage 上你最喜欢的“隐藏宝石”包是哪个?
Oleg Kiselyov 的Iteratee。我仍然不太明白它是如何工作的,但是当我需要快速读取 60,000 个文件并且没有时间弄清楚为什么正常的 Haskell 文件访问方法是太慢了。
还有 Brian O'Sullivan 的Attoparsec,根据我的经验,它在大型平面文件数据库等方面的性能确实比 Parsec 好得多。
现在您可以将两者结合起来。
Conal Elliott 的向量空间很好地封装了许多线性代数函数,也让我更接近于对类型族感到舒适。
统计数据(同样由 O'Sullivan 撰写)很方便,因为我更喜欢在 Haskell 中工作而不是在 R 中工作。
Vector - 快速数组变得容易(我不喜欢 Data.Array)。如果我只能投票给一个,那就是现在。
Lazy Small Check(另见论文)进行详尽的测试。
Cereal - 所有常见的数据结构都应该有 Binary 和 Serialize 实例。相信编译器会丢弃死代码。
meldable-heap - 还没有开始使用它,但这是一个应该如何开发软件的例子!
图表- 在为我的论文和演示文稿构建图表时,它对我很有用。
Atom - 我想要一个使用它的借口,但还没有得到一个。
我经常使用的一些被低估的实用库:
我喜欢不要图书馆:
main = don't $ do
name <- getLine
putStrLn $ "hello " ++ name
I like interlude - for when those darn 'head: undefined' messages just won't go away!
我预先警告这是自我推销,但我认为我的软件包值得更多的用户而不是我自己 :)
因此,timeplot是一个从日志中绘制时间序列的工具。它有很多功能,请参阅广泛的教程(里面有很多图片)。
例如,您可以使用它来查看重量级后台进程对响应时间的 25%、50% 和 90% 分位数的影响;或者查看全天在线的用户数量。
它是“以 Unix 方式”设计的:您获取任意日志并编写一个快速而简单的 awk 或 perl 脚本,将其转换为程序的输入(由“事件”组成:离散值脉冲、连续值脉冲和启动/停止脉冲)。
它在分析日志数据时对我非常有用,尤其是对于诊断某些“基础设施”性能问题:我查看系统活动图,发现看起来不像它应该的样子。