referential transparency

  1. Given name in given environment denotes the same value.
  2. Given expression in given environment evaluates to same value.

Advantages

Reason about programs, prove correctness and termination.

Disadvantages

Hard to express algorithms which reference locations of a random-access memory.

See imperative languages for the usecase: reference locations of a random-access memory.