Hacker News new | ask | show | jobs
by yakshaving_jgt 1584 days ago
What are you struggling with when trying to skip elements?

> Is it bad to use map?

No.

1 comments

Whether to use a for loop or for of or forEach or map().filter() etc

flatMap takes care of a lot of that

Why are you using a “trick” to skip an element in some structure when mapping a function over it?

For posterity (and forgive me if this JavaScript syntax is inaccurate; I don't write it so much these days)…

    xs.map(a => shouldBeSkipped ? a : f(a))
They don't want to keep the unmapped value in the resulting collection at all. flatMap allows for removal of an element in one traverse, unlike filter+map with eager behaviour.
Then why not just use a fold?
Sure, there's many ways to skin a cat. Given the option, I wouldn't choose either of these, and instead use something like filterMap[1] which I think conveys intent better than a fold or flatMap.

Btw, I'm assuming that the original map questioner wasn't solely using flatMap for side-effectful iteration, which reading again, I'm a bit suspicious about.

1: https://gcanti.github.io/fp-ts/modules/Array.ts.html#filterm...