Referential Transparency

Referential Transparency, referred to a function, indicates that can determine the result of applying that function only by looking at the values of its arguments. It is formal methods and easier to reason about because the meaning of an expression depends only on the meaning of its subexpressions and not on the order of evaluation or side-effects of other expressions. It is also an oft-touted property of  functional languages, which makes it easier to reason about the behavior of programs. Referential Transparency is one of the principles of functional programming; only referentially transparent functions can be memoized.