Learn You a Haskell有一个类似如下的代码示例:
ghci> B.pack [99,97,110]
Chunk "can" Empty (B代表Data.ByteString.Lazy)
但是我的ghci没有显示Chunk和Empty数据构造函数。
> B.pack [99,97,110]
"can"Haskell开发人员是否改变了ByteString值的打印方式?
发布于 2013-06-26 03:45:30
看起来邓肯在0.9.2.1和0.10.0.1之间的某个地方为lazy ByteString添加了手写的Show实例。请参阅http://hackage.haskell.org/packages/archive/bytestring/0.10.2.0/doc/html/src/Data-ByteString-Lazy-Internal.html#ByteString
添加:Here是相关的补丁
发布于 2013-06-26 03:46:03
旧版本的BL.ByteString simple在其data声明中有一个deriving Show。这将产生GHCi输出,如LYAH所示,并确保输出是有效的Haskell码。友好普通字符串"can"实际上不是该字节串的有效Haskell表示-也就是说,不是有效的Haskell 98表示。然而,在使用字节字符串的模块中使用{-# LANGUAGE OverloadedStrings #-}是很常见的,这使得它是有效的。这可能就是现在(从0.10开始)有了这个可读性更好的手动实例的原因。
https://stackoverflow.com/questions/17305832
复制相似问题