SummaryClojure in Action is a hands-on tutorial for the working programmer who has written code in a language like Java or Ruby, but has no prior experience with Lisp. It teaches Clojure from the basics to advanced topics using practical, real-world application examples. Blow through the theory and dive into practical matters like unit-testing and environment set-up, all the way through building a scalable web-application using domain-specific languages, Hadoop, HBase, and RabbitMQ.About the Technology Clojure is a modern Lisp for the JVM, and it has the strengths you'd expect: first-class functions, macros, support for functional programming, and a Lisp-like, clean programming style. About this Book Clojure in Action is a practical guide focused on applying Clojure to practical programming challenges. You'll start with a language tutorial written for readers who already know OOP. Then, you'll dive into the use cases where Clojure really shines: state management, safe concurrency and multicore programming, first-class code generation, and Java interop. In each chapter, you'll first explore the unique characteristics of a problem area and then discover how to tackle them using Clojure. Along the way, you'll explore practical matters like architecture, unit testing, and set-up as you build a scalable web application that includes custom DSLs, Hadoop, HBase, and RabbitMQ. What's Inside
A fast-paced Clojure tutorial
Creating web services with Clojure
Scaling through messaging
Creating DSLs with Clojure's macro system
Test-driven development with Clojure
Distributed programming with Clojure, and more
Introduction to Clojure
A whirlwind tour
Building blocks of Clojure
Polymorphism with multimethods
Clojure and Java interop
State and the concurrent world
Evolving Clojure through macros
PART 2 GETTING REAL
Test-driven development and more
Data storage with Clojure
Clojure and the web
Scaling through messaging
Data processing with Clojure
More on functional programming
Protocols, records, and type
More macros and DSLs
3.137.223.190