Referential transparency is a property that lets us
better understand computer programs, because it allows us to
safely replace expressions with their values without changing
the programs behavior in other places. To achieve referential
transparency, we have to program using pure functions and
function composition as primary tools.
Seen abstractly, the process of composing and decomposing of
pure functions closely relate to the essential principle of
problem: “To solve a large problem, split it up into
subproblems and solve these recursively, then combine the
solutions.” What implications does this correlation have on
In this talk, I argue why function composition is the essence
of programming, and how it manifests itself through some
abstractions we know from the functional world.