3 ms·
I had to do a project in C# many years ago, small piece of code that needed lots of concurrency and error handling. We were able to write it in a very clean mon
by runT1ME 7y ago
I had to do a project in C# many years ago, small piece of code that needed lots of concurrency and error handling. We were able to write it in a very clean monadic DSL (ala do notation in haskell or 'for' in Scala) by wrapping Task in lawful monad types, we wrote monad transformers, etc. We ended up being extremely productive and getting good performance.
I would almost never recommned doing something like this given the maintenance issues and how long it takes to bring the average C# programmer up to speed, but this was three fairly advanced FP folks working on the application. It was probably some of the cleanest C# I've gotten to work with.