【发布时间】:2021-08-12 10:15:28
【问题描述】:
我正在学习 Haskell,但很难理解惰性 ByteStrings 的工作原理。 Hackage 说“惰性字节字符串使用严格块的惰性列表,使其适用于 I/O 流任务”。相比之下,严格列表存储为一个大数组。
惰性字节串中的这些“块”是什么?您的编译器如何知道块应该有多大?此外,我理解惰性列表背后的想法是您不必存储整个事物,因此允许无限列表等等。但是这个存储是如何实现的呢?每个块是否都有指向下一个块的指针?
非常感谢您的帮助:)
【问题讨论】:
标签: haskell lazy-evaluation bytestring