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
。