Pure functions behave in the same way as mathematical functions and provide diverse benefits. A function is pure if it satisfies two conditions:
- Given the same arguments, the function always calculates and returns the same result: This should be true no matter how many times it's invoked or under which conditions you call it. This result cannot depend on any outside information or state, which could change during the program execution and cause it to return a different value. Nor can the function result depend on I/O results, random numbers, some other external variable, or a value that is not directly controllable.
- When calculating its result, the function doesn't cause any observable side effects: This includes output to I/O devices, the mutation of objects, changes to a program's state outside of the function, and so on.
If you want...