2 ms·
Here's a bunch of things that Haskell has better solutions for that I run into in Go all the time: * ResourceT is composable defer * Streaming libraries (I us
by whateveracct 7y ago
Here's a bunch of things that Haskell has better solutions for that I run into in Go all the time:
* ResourceT is composable defer
* Streaming libraries (I use conduit due to familiarity) mean I don't have to write wonky loops to process data in constant memory
* ExceptT & Either is more composable error handling
* Parametric Polymorphism all around, but especially when it comes to concurrency (no need to hand-roll goroutine rube goldberg machines!) and collections (same but for hand-rolled loops)
* Async exceptions mean you can't have runaway threads
without added implementation burden (I'm looking at you select + Context!)
* Sum types for a variety of use-cases :)