Recursive tail call optimization Tail call optimization (or tail call elimination) allows recursive functions to re-use the stack frame instead of creating new frames on every call. Thanks to that an author of recursive function in tail position is not constrained by the stack size. More over such a function runs faster than the function […]

Michael Feathers, the author of Working with Legacy Code, described in a neat way the difference between object and functional oriented programming: OO makes code understandable by encapsulating moving parts. FP makes code understandable by minimizing moving parts. Moving parts refers to those elements of an application that are stateful and change constantly. State management in any application is a […]