Functional programming concepts
We've already talked a little bit about how ClojureScript is a functional language in
Chapter 2
, ClojureScript Language Fundamentals, when we introduced the function syntax and talked about how functions in ClojureScript can be stored, passed, and referenced like any other variable. We've even seen a few examples of passing functions as arguments to other functions, as we did when we looked at laziness in
Chapter 2, ClojureScript Language Fundamentals, and passed println
as an argument to map
. In this section, we'll take a closer look at these concepts and flesh them out with some helpful examples.
Loops and iteration
Sooner or later, almost every software program has to iterate through some sort of collection and perform a transformation on it. In mutable languages, this typically takes the form of iterating through each object in the collection and mutating the underlying collection, or perhaps calling a function with a known side effect. In this section...