【问题标题】:Haskell libraries overview and their quality [closed]Haskell 库概述及其质量 [关闭]
【发布时间】:2012-03-06 09:44:43
【问题描述】:

我想在生产中使用 Haskell。它有很多库,但并非所有库都稳定、随时可用且开发良好。一些具有有趣概念的库具有实验状态。许多库仍处于次要版本(例如 0.0.1)。他们中的一些人只是放弃了。黑客攻击太大而无法监控,因此我需要简要了解当前库的状态、前景和使用适用性。

我知道这个问题非常广泛,但这些信息对任何人都有用。在这里,我们可以一点一点地收集信息,然后将其用于信息性论文。

那么我可以使用哪些库:

  • 能够处理数百万个项目的快速数组
  • 快速而强大的地图(可能是 Data.Map?)
  • 快速、通用且方便的树
  • 队列、哈希表
  • 正则表达式
  • 有限状态机
  • 神经网络、遗传算法
  • 数学计算
  • 物理(可用于游戏开发)
  • 图形界面
  • 图像处理(我们实际上有各种图像格式)
  • 使用数据库(可能是 ORM 或某些 DSL 来生成 SQL)
  • 函数式反应式编程
  • OpenGL 绑定(是的,HOpenGL 很好)、OpenAL 和 OpenCL 绑定
  • 解析(我认为 Parsec 很棒)
  • 多线程和并行编程
  • 网络
  • 多用途游戏引擎
  • 还有别的吗?

还有什么有趣的工具:

  • 测试(快速检查)
  • 日志记录(可能是 hslogger)
  • 分析
  • 调试

这里是类似主题的链接:

其他链接

谢谢。

【问题讨论】:

  • 您要求提供大量信息;您应该考虑将其设为社区 wiki。
  • 我同意。在这里,我们将收集信息,然后将其发布在维基论文中。

标签: haskell libraries


【解决方案1】:

我将把它作为一个社区 wiki 保留 - 其他人请随时以合理简洁的方式添加项目或评论。

  • 能够处理数百万个项目的快速数组:RepaVector
  • 快速而强大的地图:containersunordered-containers
  • 快速、通用且方便的树:
  • 队列、哈希表:请参阅hashtables 包了解最新和最强大的信息。
  • 正则表达式:regex-pcreregex-tdfa
  • 有限状态机:fsmActions - 但它有 0.4.3 alpha 版本; fst - 但不完全是 FSM。在某些情况下,FRP 会比真正的 FSM 更有用。
  • 神经网络,遗传算法:HNN 已经很成熟了。就 GA 而言,我们确实有一个框架 (GA) 和看起来更完整的东西 (hgalib),但我没有仔细检查过。
  • 数学计算:hmatrix
  • 物理:dimensional.
  • GUI:GTK 运行良好。我感觉wxhaskell 产生的人均问题更多,但这是一种非正式的印象。
  • 图像处理:解析? Juicy-Pixels 和 JuicyPixels-Repa。
  • 不,图像处理! CVFridayyarr
  • 使用数据库:考虑使用persistent-* 包装器,但也可以查看 HDBC。 PostgreSQL 稳定。对于 Cassandra,有几个,但请考虑 cql
  • 函数式反应式编程:Reactive-banana, netwire
  • OpenGL 绑定:OpenGLGL
  • 解析:Parsecattoparsecpolyparsefrisby
  • 多线程和并行编程 - 参见parallel 包和Control.Concurrencymonad-par 相对较新,但通常比基本并行库更容易推理。有关并发 IO,另请参阅 async
  • 网络 - 取决于。 Networkblaze-buildercerealbinary。还要考虑网络-{管道、枚举器、管道}。还有几个客户端/服务器包装器。
  • 多用途游戏引擎:用于学习? gloss。否则,您可能需要自行开发,但要使用 OpenGL、GLUT、GTK、FRP、Ogre 绑定、SDL,如果恢复正常,可能还需要使用 FunGEn
  • 配置管理:configuratorconfig-ini
  • XML 进程:HaXmlHXTxml-conduit - 良好、稳定且功能强大的库。

工具:

相关问题:

【讨论】:

  • 看来,我们还没有完整且稳定的有限状态机库。我们拥有的是fstfsmActions。在某些情况下,应该使用 FRP 库。
  • @GAS 这对我来说听起来很准确。我听到同事抱怨这个问题。甚至有自己的 FSM 库用于教学目的,但由于我不知道的原因(可能只是优先级和时间压力),尚未发布代码。
猜你喜欢
  • 2011-11-11
  • 1970-01-01
  • 2012-06-18
  • 2019-04-25
  • 2010-09-19
  • 2010-11-10
  • 1970-01-01
  • 2012-06-22
  • 1970-01-01
相关资源
最近更新 更多