Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 如何从懒惰的.Builder获取字符串?_Haskell_Bytestring - Fatal编程技术网

Haskell 如何从懒惰的.Builder获取字符串?

Haskell 如何从懒惰的.Builder获取字符串?,haskell,bytestring,Haskell,Bytestring,我需要使用ascii 7位操作作为输入的简单字符串的二进制编码,如'0'和'1' 对于编码,我使用了函数Data.ByteString.Lazy.Builder.string7::String->Builder 但是,我还没有找到将生成的生成器对象转换回'0'和'1'字符串的方法。可能吗?还有别的办法吗 附属问题:如果我想要它以十六进制形式作为文本?在Data.ByteString.Lazy.Internal中有一个unpacchars函数。Data.ByteString.Internal中还有

我需要使用ascii 7位操作作为输入的简单字符串的二进制编码,如
'0'
'1'

对于编码,我使用了函数
Data.ByteString.Lazy.Builder.string7::String->Builder

但是,我还没有找到将生成的生成器对象转换回
'0'
'1'
字符串的方法。可能吗?还有别的办法吗


附属问题:如果我想要它以十六进制形式作为文本?

Data.ByteString.Lazy.Internal
中有一个
unpacchars
函数。
Data.ByteString.Internal
中还有一个非惰性的对应项

import qualified Data.ByteString.Lazy.Builder as Build
import qualified Data.ByteString.Lazy as BS
import qualified Data.ByteString.Lazy.Internal as BSI

--> BSI.unpackChars $ Build.toLazyByteString $ Build.string7 "010101"
--"010101"
您还可以使用
map(chr.fromIntegral)。b.解包
而不是
解包
,但是
解包
可能更快

或者,正如Michael Snoyman在下面评论的那样,您可以使用
Data.ByteString.Char8
或其惰性版本,您将获得正确的转换开始。

我建议改用。