Nail on the head there. The humble state machine is a more important part of programming than people like to admit. And a very large amount of business logic is most naturally expressed in terms of data state manipulations, real world state manipulations, I&#x2F;O. To do I&#x2F;O in FP you have to deal with monads, which are hard to understand and work with.<p>(You can tell that monads are hard to work with because there are so many articles telling you that they&#x27;re easy)<p>The common ground is functional-ish and mostly-stateless programming (&quot;const&quot; etc). C# is actually becoming very good at this, and you can always cross into F# if you want.