A pure function is one that meets the following requirements:
- Takes arguments and returns a value or output
- It has no side-effects - the state of the system is not modified, and does not interact with external resources, for example
- Given an input, it will always return the same output
- Does not depend on variables or state outside its own scope