O'Reilly logo

Learning Functional Data Structures and Algorithms by Raju Kumar Mishra, Atul Khot

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Referential transparency

We appreciate the virtues of caching, but we do this to look at referential transparency, a cornerstone of functional programming.

In the preceding example, note that we are able to cache the results, as the results of the computation are not going to change for the same input. We need not repeat the computations; instead, we could compute the answer once and save and substitute it.

In the FP world, where we can substitute a function by its value, the function is called referentially transparent. Just like we avoid repeated calls in the previous algorithm, repeated calls to such functions could be avoided by caching the result.

Mathematical functions are referentially transparent. For example, the following Clojure functions ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required