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

Dommy – An idiomatic ClojureScript library for the DOM

Dommy follows a different approach than what we've see so far. For instance, selecting DOM elements is done via macros that expand to native JavaScript-like DOM selection calls.

Dommy's selection facilities model jQuery's in that that is possible to select single or multiple DOM nodes (respectively using the sel1 or sel macros), and to specify a hierarchy of CSS selectors that, when chained, identify an element to be accessed.

Dommy's DOM manipulation routines are also heavily inspired by jQuery but fit ClojureScript's functional programming style by permitting, for instance, chaining transformations, as we'll see in the upcoming example.

Event handling procedures in Dommy pretty much resemble the Google Closure Library's by using the listen! (and unlisten!) mechanisms, and not attaching callbacks to properties related to events in specific DOM elements.

Let's see a Dommy sample project. Let's first create a new ClojureScript project, which...