In functional programming, we are "more concerned with how something is defined
than with the specifics of how it is calculated" (take this motto with a grain of salt,
however, efficiency still matters in some cases). The idea is that it is a compiler or
interpreter's job to figure out how to reach a solution, not the programmer's.