A practical introduction to functional programming (2013)
This is a slight Rust tangent but I&#x27;ve been thinking a lot about the properties that make functional programming interesting and are called out in the article. Specifically the immutability providing an easy way to reason about functions via only inputs and outputs.<p>I feel the the memory model of Rust(single mutable ref or unlimited non-mutable refs) combined with the fact that there are no mutable globals(inside safe code) gives you a much easier system to reason about. I know based on inputs and outputs what could be mutated and since I know there&#x27;s only one mutable reference I can trace that single ref easily.<p>It really feels like getting a large majority of the benefits of functional programming without sacrificing the performance and predictability we&#x27;ve all become accustomed to in non-functional languages.