Haskell bytestream的无限循环

Haskell bytestream的无限循环,haskell,Haskell,您好,我正在尝试生成无限循环的ByteStream。(并不是说它会有多大用处,只是胡闹而已) 但是由于L.cycle[0..255]的原因,它说无法将预期的类型“L8.ByteString”与实际的类型“[Integer]”匹配。 如何使其类型匹配?这应该可以: import qualified Data.ByteString.Lazy as L main :: IO () main = L.writeFile "test" $ L.take 10000 $ L.cycle (L.pac

您好,我正在尝试生成无限循环的
ByteStream
。(并不是说它会有多大用处,只是胡闹而已)

但是由于
L.cycle[0..255]
的原因,它说
无法将预期的类型“L8.ByteString”与实际的类型“[Integer]”匹配。

如何使其类型匹配?

这应该可以:

import qualified Data.ByteString.Lazy as L

main :: IO ()
main = L.writeFile "test" $ 
  L.take 10000 $ L.cycle (L.pack [0..255])
cycle
的类型为
ByteString->ByteString
,您向其提供了一个整数列表,这就是为什么会出现编译错误。您可以使用该函数将
Word8
列表转换为
ByteString

这应该可以:

import qualified Data.ByteString.Lazy as L

main :: IO ()
main = L.writeFile "test" $ 
  L.take 10000 $ L.cycle (L.pack [0..255])

cycle
的类型为
ByteString->ByteString
,您向其提供了一个整数列表,这就是为什么会出现编译错误。您可以使用该函数将
Word8
列表转换为
ByteString

您只能循环
ByteStrings
,而不能循环列表。您需要首先使用
L.pack::[Word8]->L.ByteString
将列表转换为
ByteString
。您只能循环
ByteString
,而不能循环列表。首先需要使用
L.pack::[Word8]->L.ByteString
将列表转换为
ByteString