Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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 ByteString变换_Haskell_Xor_Bytestring - Fatal编程技术网

Haskell ByteString变换

Haskell ByteString变换,haskell,xor,bytestring,Haskell,Xor,Bytestring,我正在尝试编写一个简单的函数,用给定的比率通过testring转换。异或的数量取决于长度和比率 rr <- randomRIO (0, BL.length bs) let howMuch = floor $ (ratio args) * (fromIntegral rr) transformIndexes <- replicateM howMuch $ randomRange (0, BL.length w) rr为什么要使用bytestring,而不是可变数组或非固定向量或其他什

我正在尝试编写一个简单的函数,用给定的
比率
通过testring
转换
。异或的数量取决于
长度和
比率

rr <- randomRIO (0, BL.length bs)
let howMuch = floor $ (ratio args) * (fromIntegral rr)
transformIndexes <- replicateM howMuch $ randomRange (0, BL.length w)

rr为什么要使用bytestring,而不是可变数组或非固定向量或其他什么?我正在处理包含惰性bytestring的多个数据结构,所以我试图概括它们的各个部分的变化。重写所有这些代码将非常困难。如果您使用的是lazy ByTestring,请相信垃圾收集器。如果您不再需要lazy-bytestring的块,因为它们在别处没有被引用,那么它将被释放,而此时对它们进行变异是安全的。只需确保避免挂起对整个原始bytestring的引用或保存整个原始bytestring的结构。
bytestring
并不是为突变而设计的。有一些技巧你可以玩,但你可能不应该玩。我已经开始改变变异/变异来转化。希望这能使问题不那么模棱两可。如果OP意识到他实际上想要改变值,他可以重新编辑他的问题或回滚。