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

Understanding ClojureScript functions

Before we dive too far into ClojureScript, we need to understand the syntax behind ClojureScript functions. Functions in ClojureScript work like functions in most computer languages.


Functions in ClojureScript are first-class entities, which means that we can store them as variables, or values in data structures, return them as values from other functions, and pass functions as arguments to other functions.

We'll be demonstrating quite a bit of code evaluation in this chapter. In order to follow along, start up an REPL following the instructions provided in the previous chapter.

Let's start by quickly seeing what a function call in ClojureScript looks like at the REPL:

cljs.user=> (+ 1 2)
;; => 3

ClojureScript, as a Lisp, looks unlike many other languages, including JavaScript. It is a language written in prefix notation, which means that the calling function is the first argument. The same operation, performed in JavaScript, would look like...