Immutability is not enough
&gt; This is exactly the kind of problem that functional programming was supposed to help us avoid!<p>No, no it isn&#x27;t. Just like you wouldn&#x27;t expect 2 * 3 + 8 to suddenly return 22 when you intend it to, you shouldn&#x27;t expect the order in which you apply functions to not matter.<p>When you pass around a changing state object to every step of your program, you are effectively doing normal imperative programming with global-ish state.