【发布时间】:2015-11-22 02:32:23
【问题描述】:
我希望有人给出一个完整的工作代码,允许在 Haskell 中执行以下操作:
读取一个非常大的 32 位序列(超过 10 亿个元素) 将二进制文件中的 int 值放入适当的容器中(例如 当然不是列表,因为性能问题)并将每个数字加倍 如果小于 1000(十进制),然后写入生成的 32 位 int 值到另一个二进制文件。我可能不想阅读全文 内存中二进制文件的内容。我想读一本 前一个之后的块。
我很困惑,因为我找不到关于此的文档。 Data.Binary、ByteString、Word8 等等,它只会增加混乱。对于 C/C++ 中的此类问题,有相当直接的解决方案。取一个所需大小的数组(例如无符号整数),并使用读/写库调用并完成它。在 Haskell 中,这似乎并不容易,至少对我来说是这样。
如果您的解决方案使用主流 Haskell (> GHC 7.10) 可用的最佳标准 包而不是一些晦涩/过时的包,我将不胜感激。
我从这些页面阅读
【问题讨论】:
标签: haskell io binaryfiles