If you’re an experienced programmer who has not worked with Clojure before, this guide is the perfect thorough but gentle introduction for you. Author Carin Meier not only provides a practical overview of this JVM language and its functional programming concepts, but also includes a complete hands-on training course to help you learn Clojure in a structured way.
The first half of the book takes you through Clojure’s unique design and lets you try your hand at two Clojure projects, including a web app. The holistic course in second half provides you with critical tools and resources, including ways to plug into the Clojure community.
Understand the basic structure of a Clojure expression
Learn how to shape and control code in a functional way
Discover how Clojure handles real-world state and concurrency
Take advantage of Java classes and learn how Clojure handles polymorphism
Manage and use libraries in a Clojure project
Use the core.async library for asynchronous and concurrent communication
Explore the power of macros in Clojure programming
Learn how to think in Clojure by following the book’s seven-week training course
A Guided Tour of Clojure
Chapter 1The Structure of Clojure
Baby Steps with Simple Values
Put Your Clojure Data in Collections
Using Sets for Unique Collections of Data
Lists Are the Heart of Clojure
Symbols and the Art of Binding
Creating Our Own Functions
Chapter 2Flow and Functional Transformations
Controlling the Flow with Logic
Functions Creating Functions and Other Neat Expressions
The Power of Laziness
The Functional Shape of Data Transformations
Chapter 3State and Concurrency
Handling Real-World State and Concurrency
Chapter 4Java Interop and Polymorphism
Handling Interop with Java
Chapter 5How to Use Clojure Projects and Libraries
Getting Set Up with a Clojure Editor
Creating Our Project with Leiningen
Dependency Management with Leiningen
Using Libraries in Your Own Project
Chapter 6Communication with core.async
Basics of core.async Channels
Serving Tea at a core.async Tea Party
Creating a Tea Party to Be Run from the Command Line
Chapter 7Creating Web Applications with Clojure
Creating a Web Server with Compojure
Using JSON with the Cheshire Library and Ring
Using Clojure in Your Browser with ClojureScript
Making HTTP Calls with ClojureScript and cljs-http
DOM Control with ClojureScript and Enfocus
Event Handling with Enfocus
Summary of Our Clojure and ClojureScript Web Application
Carin started off as a professional ballet dancer, studied Physics in college, and has been developing software for both the enterprise and entrepreneur ever since. She has a strong background in Ruby and Clojure. She is highly involved in the community and has spoken at many conferences, including keynoting at OSCON. She also leads the Cincinnati Functional Programmers and the Clojure and Coffee user groups in Cincinnati.
The animal on the cover of Living Clojure is a water rail (Railus aquaticus), a species of bird found breeding in wetlands from the British Isles to Asia. With the African and Madagascan rails it constitutes a superspecies that likely evolved originally in the New World.
The water rail can be very elusive outside of nocturnal migrations, confining itself to the wetland terrain where a narrow body and long legs allow it to deftly negotiate long, tangled grasses; its facility on the ground also renders flying and swimming secondary modes of transport. Often more evident by its vocalizations than by sight, the water rail uses a piglike grunting and squealing called sharming to mark a particular territory. Fierce territoriality characterizes the bird's behaviors both in the breeding and winter feeding seasons.
Within the densely grown patches of marshland over which they demonstrate a fierce territoriality, a monogamous pair of water rails—for the breeding season, at least—mix ongoing courtship calls and displays with the tedium of nest-building, incubation, and feeding. Both parents share the task of incubating eggs within nests built near the water level. Chicks covered in black down develop quickly and follow parents out of the nest mere hours after hatching.
Water rails are opportunistic omnivores with a wide range of means for obtaining sustenance. A bird of the species will deviate from well-worn paths to food through thick reedbeds and marshes to pluck berries from a bush or pick at carrion. It is also capable of discrete aggresion, drowning small animals it has trapped or using its long beak to impale others when necessary.
The cover image is from The Elements of Ornithology. The cover fonts are URW Typewriter and Guardian Sans. The text font is Adobe Minion Pro; the heading font is Adobe Myriad Condensed; and the code font is Dalton Maag's Ubuntu Mono.
This book is fantastic. It's the best introduction to Clojure I've found.
The book systematically walks you through all the important concepts in the language will easy to understand non-boring examples. The author also states more than once "if you don't grasp everything right away, let it wash over you, it will make more sense when you start your training." (paraphrased)
This all leads up to giving you the tools and practice you need to embark on a 7 week journey of daily practice, very similar to the couch to 5k program to get people from non-activity to running a 5k in a sane incremental manner.
Bottom Line Yes, I would recommend this to a friend
Does every Clojure book need a section on language features
from Portland, OR
About Me Developer, Educator
Comments about oreilly Living Clojure:
Sorry, mainly a rehash. Maybe one or two chapters had something I didn't already know about the language. If you've done work in the language, it's too introductory. If you know nothing, it's probably OK.
Bottom Line No, I would not recommend this to a friend
Merchant response: Hi, The book is meant as an introduction and not for people who have any experience with Clojure. The description says: "If you’re an experienced programmer who has not worked with Clojure before, this guide is the perfect thorough but gentle introduction for you."