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