nicolas-van/modern-async

flatMap

Opened this issue · 2 comments

Please explain the feature or improvement you would like:

Please add async flatMap

Please describe the use case where you would need that feature (the general situation or type of program where that would be helpful):

Currently the best counterpart to

arr.flatMap((elt) => f(elt))

is

(await asyncMap(arr, async (elt) => await f(elt))).flatMap(elt => elt)

Which is janky. I would prefer

await asyncFlatMap(arr, async (elt) => await f(elt))

Please explain why you think that feature would be helpful to other people:

Because flatMap is in stdlib Array

Actually you should also be able to call

await asyncMap(arr, async (elt) => await f(elt)).flat()

which is a bit shorter.

But yes, it is true that we could provide a shorthand with asyncFlatMap.

Good point 🤦 but yes please