scanl +bytestring

scanl :: (Char -> Char -> Char) -> Char -> ByteString -> ByteString
bytestring Data.ByteString.Lazy.Char8
scanl is similar to foldl, but returns a list of successive reduced values from the left. This function will fuse. > scanl f z [x1, x2, ...] == [z, z `f` x1, (z `f` x1) `f` x2, ...] Note that > last (scanl f z xs) == foldl f z xs.
scanl :: (Char -> Char -> Char) -> Char -> ByteString -> ByteString
bytestring Data.ByteString.Char8
scanl is similar to foldl, but returns a list of successive reduced values from the left: > scanl f z [x1, x2, ...] == [z, z `f` x1, (z `f` x1) `f` x2, ...] Note that > last (scanl f z xs) == foldl f z xs.
scanl :: (Word8 -> Word8 -> Word8) -> Word8 -> ByteString -> ByteString
bytestring Data.ByteString, bytestring Data.ByteString.Lazy
scanl is similar to foldl, but returns a list of successive reduced values from the left. This function will fuse. > scanl f z [x1, x2, ...] == [z, z `f` x1, (z `f` x1) `f` x2, ...] Note that > last (scanl f z xs) == foldl f z xs.
scanl1 :: (Char -> Char -> Char) -> ByteString -> ByteString
bytestring Data.ByteString.Char8
scanl1 is a variant of scanl that has no starting value argument: > scanl1 f [x1, x2, ...] == [x1, x1 `f` x2, ...]
scanl1 :: (Word8 -> Word8 -> Word8) -> ByteString -> ByteString
bytestring Data.ByteString
scanl1 is a variant of scanl that has no starting value argument. This function will fuse. > scanl1 f [x1, x2, ...] == [x1, x1 `f` x2, ...]