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.
I think we could use a slightly better way of describing "do this effect N times". Currently, our solution for this is
ZIO#repeatN. However, this has a couple of issues.First, the
Nthere is how many times to repeat the effect, so if you want to perform an effect a hundred times you need to remember to dozio.repeatN(99)instead ofzio.repeatN(100).Second, it gives you back the last result whereas you probably either want all the results or don't care about any of them.
Third, it introduces a yield between each repetition, which makes sense if we are repeating because some condition wasn't true and need to allow that condition to actually change, but doesn't really make sense if weI just want to perform an effect a given number of times.
This PR adds a
replicateMoperator onZIOthat just runs an effect the specified number of times and collects all the results. There is also areplicateM_operator for where you don't need the result, like you just have a bunch of chunks and you want to offer all of them to a queue.