Pure Functions
Pure functions are one of the pillars of functional programming. A function is pure if it always returns the same result when it's given the same parameters. It also cannot depend on or modify variables or state outside of the function's scope.
A simple example of an impure function is as follows:
var positionX = 10; function moveRight(numSlots) { return positionX += numSlots; } moveRight(5);
You can plainly see how the function is manipulating a value outside of its scope in the positionX
global variable. A pure function should only use the arguments that have been passed in for its logic, and should not directly modify them. Another issue is that the function doesn't actually return a value.
Consider the following code. Can you see why it would not be considered a pure function?
var positionX = 10; function moveRight(numSlots) { Â Â Â Â return positionX + numSlots; } positionX = moveRight(5);
Though the function...