Haskell的原子库的比较,例如simple-atom和stringtable-atom

时间:2011-07-25 17:44:09

标签: haskell

我发现自己需要在我正在开发的Haskell程序中使用字符串表。特别是,我想要一个允许将任何String插入(比如说)'Atom'的系统;给定一个Atom,你应该能够恢复它来自的原始字符串,并且(严格地)比较两个Atom的相等性应该与指针比较一样快(或几乎同样快)。

(可以轻松地为此功能设计一个引用透明的接口;实现将在内部使用unsafePerformIO,但库的用户无需了解此类详细信息。)

Hackage上的两个库似乎在正确的球场:stringtable-atom和simple-atom。有没有人有使用这些库的经验?特别是,对于一个人对另一个人的好处可能有什么建议吗?

2 个答案:

答案 0 :(得分:2)

另一个不错的选择是ekmett的新实习包,它处理字节串以及更复杂的递归类型:http://hackage.haskell.org/package/intern

他向我保证这是线程安全的。

答案 1 :(得分:0)

我写了monad-atom供我自己使用。如果您需要全局唯一原子,那么这不是您想要的,但如果您只需要一个字符串表,那么它就是简单而安全的。