In this episode of FunHop, we would try to look at what is Referential Transparency, what is substitution model and how being immutable really helps. Referential transparency means that we can exchange the expression by its value or a value by the expression and nothing changes. Pure functions are referentially transparent. Any function f(a)=b is a pure function if for the same “a” we end up getting the same “b” without any internal or external state change. For example the + function is a pure function 2 + 3 and val c= 2 c + 3 would always yield the same result. There are no side effects either. Now, let us look at Referential Transparency.