Hmmm

Kitty Quinn
Sep 3, 2018 · 1 min read

Nope, sorry. These features aren’t missing, C# puts its expression monads in Linq so they’re reusable consistently. Having working generics makes stuff like that possible.

They’re not named the same thing as the Java stream operators, but it’s literally even the same code, an awaiting select to register the continuation, another non awaiting select to make the sequence blocking and project the result, a ToList to start the sequence and collect the values, and a foreach to iterate the results.

There’s also the parallel construct AsParallel that can make them all execute sinultaneously. And generators if you want to make it truly lazy and async all the way down.

If you really want to get serious with functional operators, load up ReactiveX; it provides flatmap, circuit breakers mergemaps, replay syndicators and all that jazz.

Aaaaaaand for SOA additions, there’s a Polly.net impl as well.

Aaaaaaand if you want a functional language comparable to Scala with Scalaz, try F#.

Come to the dark side. We have cake.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade