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
Credits
Foreword
About the Authors
About the Reviewer
www.PacktPub.com
Preface

Runtime data validation using schema


Like JavaScript, ClojureScript is dynamic; no type declarations are required, and attempting to provide them doesn't really give much meaningful support since ClojureScript's close relationship with the Google Closure compiler ensures your applications will already be fairly optimized when such type-related optimizations are available.

However, there are reasons you might want to have type checking as part of your program that aren't performance oriented. For instance, you might want to do input validation, or you might need to ensure that your functions are correctly passing the right data to each other in a test environment. For essentially all scenarios in which you might want to do runtime data validation, Prismatic's schema library is the perfect fit.

At a high level, the schema library provides functionality for data validation, function annotation, and coercion. It is an invaluable tool when it comes to making runtime assertions about programs and...