Book Image

Learning ClojureScript

By : W. David Jarvis, Allen Rohner
Book Image

Learning ClojureScript

By: W. David Jarvis, Allen Rohner

Overview of this book

Clojure is an expressive language that makes it possible to easily tackle complex software development challenges. Its bias toward interactive development has made it a powerful tool, enabling high developer productivity. In this book, you will first learn how to construct an interactive development experience for ClojureScript.. You will be guided through ClojureScript language concepts, looking at the basics first, then being introduced to advanced concepts such as functional programming or macro writing. After that, we elaborate on the subject of single page web applications, showcasing how to build a simple one, then covering different possible enhancements. We move on to study more advanced ClojureScript concepts, where you will be shown how to address some complex algorithmic cases. Finally, you'll learn about optional type-checking for your programs, how you can write portable code, test it, and put the advanced compilation mode of the Google Closure Compiler to good use.
Table of Contents (15 chapters)
Learning ClojureScript
About the Authors
About the Reviewer

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...