About

Pure functions are called pure because:

  • they do not change their inputs,
  • they always return the same result for the same inputs.

The result is then predictable.

Pure functions take data and transform it, without modifying any shared state, meaning there are no side effects besides returning a value.

They are mostly used in functional programming.

Example

Pure
function sum(a, b) {
  return a + b;
}
Not Pure
function withdraw(account, amount) {
  account.total -= amount;
}

Data Structure

Pure functional data structures - Purely Functional Data Structures - Chris Okasaki - September 1996 - CMU-CS-96-177 (PDF)

1) 2)