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

Writing macros for ClojureScript

If you're new to Lisp languages, you may not be familiar with macros. In essence, Lisp macros differ from macros in other languages in that they are a mechanism by which code itself can be transformed and rewritten. We've already used a number of macros so far in the examples in this book, and, indeed, macros are a core part of ClojureScript and you can and should expect to find yourself using them frequently. They enable us to do things that would not otherwise be possible and to optimize and refactor code in powerful ways.

read and eval

In order for all of what we're about to say to make sense, it'll probably be helpful to first understand a little bit about how programming languages work. With most languages, there exists a reader function in the compiler that takes a series of strings and transforms the text you provided into an abstract syntax tree. That abstract syntax tree is then passed on to an evaluator, which knows how to take the contents of the...