首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >haskell中的固定长度循环缓冲区

haskell中的固定长度循环缓冲区
EN

Stack Overflow用户
提问于 2011-06-29 00:52:49
回答 2查看 1.5K关注 0票数 9

我想在Haskell中创建一个通用类型的定长循环缓冲区。缓冲区中的项需要在物理内存(非链表)中一个接一个地定位。我想要这种特定的结构,因为它将提高所有数据一起进入CPU上的L2缓存的机会。我读过关于Haskell如何允许新的数据类型的文章,但是看起来使用" data“创建的类型比使用模式匹配和相关方法美化的c结构要多一些。有没有可能在Haskell中完全创建像上面描述的那样的低级数据结构。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-29 01:53:17

您想要一个可变的类似数组的结构,并且特别想要一个未装箱的结构,以便底层数组不仅存储指向数据的指针,还存储项本身。

标准数组库中的Data.Array为您提供了一个版本,但特别是向量库中提供了高性能的数组:http://hackage.haskell.org/package/vector

向量库,如ByteString、Text和其他一些库,在底层使用了大量低级ghc特定的原语。如果只是使用这个库,你不应该自己去担心这些事情。但是如果你认为这个库不能满足你的需要,那么你也可以通过自己阅读它的源代码来学到相当多的技巧和技术。

票数 10
EN

Stack Overflow用户

发布于 2011-06-29 01:13:29

是的,这当然是可能的。Real World Haskell中的creating a bloom filter一章应该是这类实现的一个很好的例子。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6510175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档