Pure functions
In functional programming, the concept of a pure function is one that holds the following two properties:
The function should always return the same output for the same input
The function should not create any side effects
The first property means that when a function is invoked, the value returned should always be the same whenever the same input is used. A simple example is abs. The absolute value of an integer is always the same for the same input. A pure function can depend only on the input, but it does not have to necessarily use all the input types.
The second property is that a function should not cause any observable changes outside the function. So the function cannot depend on any external mutable state, change variables that exist outside the function, or write I/O.
If a function is said to be pure, then the function can be replaced at the call site with the result of the expression. Going back to the absolute function, any code that depends on abs(-4) can be replaced...