Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi,
There doesn't seem to be an analogue of
mapAccumL
in "streaming", at least I didn't find it. This pull request is a possible implementation (adapted from the implementation ofStreaming.Prelude.scan
).My motivation for having this function is to decode
ByteString
streams intoText
streams with the help ofData.Text.Encoding.streamDecodeUtf8
:Instead of using the proposed
mapAccum
, we can decode using the already existingStreaming.Prelude.scan
:However, the problem with using
scan
is that it doesn't let us check theByteString
leftovers once the stream is exhausted, in order to see if there's some undecoded input remaining.Another (minor) annoyance is that
scan
always yields its initial state, which in the example will be an emptyText
. Yielding something before processing any input is weird for a decoding function.