我正在将一些命令式代码移植到 Haskell。我的目标是分析一个可执行文件,因此文本部分的每个字节都被分配了一些标志,这些标志都适合一个字节(准确地说是 6 位)。
在像 C 这样的语言中,我只需分配一个字节数组,将它们归零并随时更新它们。我将如何在 Haskell 中有效地做到这一点?
换句话说:我正在寻找一个具有按位访问和恒定时间更新的 ByteString,因为我反汇编了更多的文本部分。
编辑:当然,如果它同样有效,任何其他类型的数据结构都可以。
Bits
您可以将向量与作为typeclass实例的任何数据类型一起使用,例如Word64
向量中每个元素的 64 位。如果您希望数组在内存中是连续的,请使用未装箱的向量。