19得票1回答
Haskell迭代器:去除尾部空格的简单示例

我正在尝试理解如何在Haskell中使用iteratee库。到目前为止,我看到的所有文章似乎都侧重于建立对如何构建iteratee的直觉,这很有帮助,但现在我想要去实际使用它们时,感到有点不知所措。查看iteratee的源代码对我来说价值有限。 假设我有一个函数,它会从一行中删除尾随空格:i...

19得票3回答
如何在Haskell中将整数转换为字节字符串(ByteString)

我们希望以特定的二进制格式序列化数据。我们在内部使用 Data.ByteString。 所以问题是:如何将我们使用的不同数据类型转换为 ByteString。对于 String,我们没有问题,可以使用 encodeLazyByteString UTF8 "string"。但我们也想将 Int...

17得票3回答
许多类型的字符串(字节字符串)

我希望能够压缩我的应用程序的网络流量。 根据(最新的?)Haskell人气排名,zlib似乎是一个相当受欢迎的解决方案。 zlib的接口使用ByteString: compress :: ByteString -> ByteString decompress :: ByteStrin...

15得票1回答
如何在Haskell中创建一个Word8?

我想编写一个简单的函数,将 ByteString 按照 '\n' 作为分隔符将其拆分成 [ByteString]。下面是我的尝试:import Data.ByteString listize :: ByteString -> [ByteString] listize xs = Data...

14得票2回答
Haskell中高效的位流处理

在高效处理比特位的持续努力中(例如参见SO问题),最新的挑战是比特位的高效流和消耗。 作为第一个简单的任务,我选择在由/dev/urandom生成的比特流中查找最长的相同比特序列。典型的命令是head -c 1000000 </dev/urandom | my-exe。实际目标是流式传...

14得票1回答
生成ByteString(或任何包含ForeignPtr组件的对象)的纯函数性质

由于ByteString是带有ForeignPtr构造函数的:data ByteString = PS {-# UNPACK #-} !(ForeignPtr Word8) -- payload {-# UNPACK #-} !Int         ...

12得票5回答
将ByteString漂亮地打印成十六进制的四位一组的形式

如何以惯用方式处理字节串的每个nibble(半字节),并漂亮地打印其十六进制(0-F)表示?putStrLn . show . B.unpack -- [1,126] 在进一步的工作中,putStrLn . show . map (\x -> N.showIntAtBase 16 (DC...

11得票3回答
高效地将ByteString转换为十六进制表示形式

我需要能够给出SHA512哈希的十六进制表示。也许我没找够,但我在Hackage上找不到任何可以实现它的函数。因此,我使用了unfoldrN编写了一个实现。对于我的目的来说,它绝对足够快,但我想知道是否有更快的方法。 我已将我的实现放在Github上作为gist:https://gist.g...

11得票2回答
如何将ByteString转换为Int的最佳方法?

我在读取ByteString时经常遇到以下错误: Prelude.read: no parse 以下是一个代码示例,将在浏览器中渲染时导致此错误: factSplice :: SnapletSplice App App factSplice = do mbstr <- get...

11得票1回答
读取超过2^18字节的惰性字节串时发生段错误(Segfault)。

考虑以下代码:http://hpaste.org/90394 我将一个大小为460MB的文件映射到了一个lazy ByteString。ByteString的长度报告为471053056。 当把nxNodeFromID file 110000更改为较低的节点ID,比如10000时,它可以正...