Table of Contents

What is a Pure Function?

About

Pure functions are called pure because:

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;
}

Expression

A pure expression is an expression that declares data and transform it with functions.

Impurities

Impurities are language constructs that are not reproducible.

Data Structure

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

1) 2)