Chapter 11. Practical Functional C#

I’m not just a pretty face.1 In addition to spending my days slogging at the virtual IT coalface each day, I’ve also been privileged enough to spend a lot of time over the years talking at various events on the subject of functional programming with C#. While at these talks, a few questions come up on a fairly regular basis.

The most common is “Why don’t we just use F#?” See all the way back in “What About F#? Should I Be Learning F#?” for my answer to that particular question. It comes up at just about every event I’ve ever spoken at, which is one of the reasons I gave such a detailed answer.

Oddly, the second most common question is to explain monads (which I did in Chapter 7). Hopefully, after getting to this point, you’re something of an expert on that yourself now.

After these, the next most common question is about performance. There’s a widespread belief that FP in C# is inefficient in production code compared with OOP. I’ll spend the first section of this chapter talking about performance and whether it’s an issue that you need to be concerned about before adopting functional C# in your everyday life—or, at least, your everyday life that involves .NET code. For me, there’s a rather large overlap between those two things.

Functional C# and Performance

Let’s continue now with a look at functional C# and performance. To do that, we’re going to need a bit of code to use as a test subject, so we can compare imperative code (i.e., the programming ...

Get Functional Programming with C# now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.