> Equational Reasoning Probably the best reason to use FP imo. It just cuts out so much overhead when trying to read other people’s code.
In ML languages, code forms a beautiful tree structure where you can see the binding definition of each binding by looking down and right.
let x =
something
really
big
and
complicated
whereas in a language built around statements it will be scattered all over: let x = null;
x = something();
x = somethingElse(x);
x = anotherThing(x);
In the first case the definition of x is in one indented block; you can read it and move on.