我发现自己在开发的Haskell程序中需要一个字符串表。特别是,我想要一个系统,它允许be将任何字符串装箱到(比方说)一个‘Atom’中;给定一个Atom,你应该能够恢复它来自的原始字符串,并且(关键地)比较两个原子是否相等应该和指针比较一样快(或者几乎一样快)。
(可以很容易地为这个功能设计一个引用透明的接口;实现将在内部使用unsafePerformIO,但是库的用户不需要知道这些细节。)
Hackage上提供的两个库似乎恰到好处: stringtable-atom和simple-atom。有没有人有使用这些库的经验?特别是,有没有什么建议,其中之一的好处可能是另一个?
发布于 2011-08-01 08:53:53
另一个不错的选择是ekmett的新实习生包,它可以处理字节串和更复杂的递归类型:http://hackage.haskell.org/package/intern
他向我保证这是threadsafe。
发布于 2012-02-15 18:59:38
我自己编写了monad-atom。如果你需要全局唯一的原子,这不是你想要的,但是如果你所需要的只是一个字符串表,它是简单和安全的。
https://stackoverflow.com/questions/6820152
复制相似问题