You are previewing Clojure in Action.
O'Reilly logo
Clojure in Action

Book Description

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

  • This book assumes you're familiar with an OO language like Java, C#, or C++ but requires no background in Lisp or Clojure itself. ================================== Table of Contents
    PART 1 GETTING STARTED
    1. Introduction to Clojure

    2. A whirlwind tour

    3. Building blocks of Clojure

    4. Polymorphism with multimethods

    5. Clojure and Java interop

    6. State and the concurrent world

    7. Evolving Clojure through macros

      PART 2 GETTING REAL

    8. Test-driven development and more

    9. Data storage with Clojure

    10. Clojure and the web

    11. Scaling through messaging

    12. Data processing with Clojure

    13. More on functional programming

    14. Protocols, records, and type

    15. More macros and DSLs