Haskell 库概述及其质量

发布于 2025-01-06 05:30:30 字数 2353 浏览 1 评论 0 原文

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

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

那么我可以使用哪些库:

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

拥有以下工具也很有趣:

  • 测试(QuickCheck)
  • 日志记录(也许是 hslogger)
  • 分析
  • 调试

这里有类似主题的链接:

其他链接

谢谢。

I want to use Haskell in production. It has a lot of libraties but not all of them are stable, ready-to-use and well-developed. Some libraries with interesting conceptions have experimental status. Many libraries are still in minor versions (0.0.1 for example). Some of them just abandoned. Hackage too huge to monitor them, so I need a brief slice of the current libraries state, their prospects and suitability for use.

I understand that question is very broad, but this information will be useful to anyone in any way. Here we can gather information bit by bit and then use it for an informative paper.

So what libraries I can use for:

  • Fast arrays capable of handling millions of items
  • Fast and powerful maps (probably, Data.Map?)
  • Fast, generic and convenient trees
  • Queues, hashtables
  • Regular expressions
  • Finite state machines
  • Neural networks, genetic algorithms
  • Mathematical calculations
  • Physics (wich can be used in game developing)
  • GUI
  • Image processing (we have various image formats actually)
  • Working with databases (maybe ORM or some DSLs to generate SQL)
  • Functional reactive programming
  • OpenGL bindings (yes, HOpenGL is good), OpenAL and OpenCL bindings
  • Parsing (Parsec is great I think)
  • Multithread and parallel programming
  • Network
  • Multipurpose game engines
  • Something else?

What is also interesting to have the tools for:

  • Testing (QuickCheck)
  • Logging (Maybe hslogger)
  • Profiling
  • Debugging

Here the links to the similar topics:

Other links

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人生戏 2025-01-13 05:30:30

我将把它保留为社区 wiki - 其他人请随意以相当简洁的方式添加项目或评论。

工具:

相关问题:

I'll leave this as a community wiki - others people please feel free to add items or commentary in a reasonably concise manner.

  • Fast arrays capable of handling millions of items: Repa, Vector.
  • Fast and powerful maps: containers and unordered-containers.
  • Fast, generic and convenient trees:
  • Queues, hashtables: See the hashtables package for the latest and greatest.
  • Regular expressions: regex-pcre, regex-tdfa
  • Finite state machines: fsmActions - but it has version 0.4.3 alpha; fst - but not exactly a FSM. In some cases FRP will be useful instead of true FSM.
  • Neural networks, genetic algorithms: HNN is well established. As far as GA, we really have a framework (GA) and something that looks more complete (hgalib), but I haven't inspected it closely.
  • Mathematical calculations: hmatrix
  • Physics: dimensional.
  • GUI: GTK works well. I get the sense that wxhaskell generates more questions per-capita, but that's an informal impression.
  • Image processing: Parsing? Juicy-Pixels and JuicyPixels-Repa.
  • No, Image processing! The CV, Friday, yarr
  • Working with databases: Consider using the persistent-* wrappers, but also look at HDBC. PostgreSQL is stable. For Cassandra there are several but consider cql.
  • Functional reactive programming: Reactive-banana, netwire
  • OpenGL bindings: OpenGL, GL.
  • Parsing: Parsec, attoparsec, polyparse, frisby.
  • Multithread and parallel programming - See the parallel package and Control.Concurrency. monad-par is relatively new but frequently easier to reason about than the basic parallel library. See also async for concurrent IO.
  • Network - Depends. Network with blaze-builder, cereal, or binary. Also consider network-{conduit, enumerator, pipes}. There are several client/server wrappers out there as well.
  • Multipurpose game engines: For learning? gloss. Otherwise you probably need to roll your own but make use of OpenGL, GLUT, GTK, FRP, ogre bindings, SDL, and perhaps FunGEn if it's back on track.
  • Configuration management: configurator, config-ini.
  • XML Process: HaXml, HXT, xml-conduit - good, stable and powerful libraries.

Tools:

Related Questions:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文