Things get a lot better when you can use Railway Oriented Programming but C# isn't built for it. There is certainly a trade-off: explicit function contracts or nicer nesting. At this point in my career I choose the former and then lean toward languages that support both (F#).
Ah functional programming... you know what they say - it's like communism - most arguments against communism can be applied to functional programming as well:
If it is so good, why does it fail every single time?
Why is it preached only amongst scientists, who didn't work a real job a single day in their life?
If you believe it's so good, why don't you make your own company and use it to take over the market?
When it fails the explanation was: it's because it wasn't pure functional programming...
Things get a lot better when you can use Railway Oriented Programming but C# isn't built for it. There is certainly a trade-off: explicit function contracts or nicer nesting. At this point in my career I choose the former and then lean toward languages that support both (F#).
Ah functional programming... you know what they say - it's like communism - most arguments against communism can be applied to functional programming as well:
You seem like a nice person.
This is an understatement :)