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.
This operation takes a stream and zips the receiver and the argument together. This essentially results in a Stream that doesn't occur until both input streams have and will contain events that are tuples of corresponding input events (so
[left_event, right_event]). This means that we have #merge to create a stream that occurs whenever either inputs occur and #zip for when both have occurred (sort of like and&and|for Streams in a way).This actually introduces a small performance problem as zipping one stream that occurs very rarely with another that occurs frequently will cause the latter to buffer a lot and so it will consume a lot of memory.
P.S. This #zip operation only allows you to zip two streams together at the moment. If we wanted the Stream API to be interchangeable with Enumerable it will need to take an arbitrary number of streams. For the moment though I felt this provided a nice amount of functionality.