An expression is called referentially transparent if it can be replaced with its corresponding value (and vice-versa) without changing the program's behavior.
Avoid side effects
pure function - easier to test
Avoid side effects
pure function - easier to test