Pure Functions

Pure vs Impure (procedures)

Functional programming almost always use pure functions.
Creates and returns value based on input parameters and causes no side effects

1) Changing value globally
2) Changing value of input
3) Throwing exception
4) Logging or printing to screen, writing to file, change to db.
5) Invoking other functions that have side-effects