Used - Very Good
$18.00$18.00
Ships from: tanasbooks Sold by: tanasbooks
Sorry, there was a problem.
There was an error retrieving your Wish Lists. Please try again.Sorry, there was a problem.
List unavailable.
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the authors
OK
Clojure Applied: From Practice to Practitioner 1st Edition
Purchase options and add-ons
Clojure Applied gives you the practical, realistic advice and depth of field that's been missing from your development practice. You want to develop software in the most effective, efficient way possible. This book gives you the answers you've been looking for in friendly, clear language.
Dive into the core concepts of Clojure: immutable collections, concurrency, pure functions, and state management. You'll finally get the complete picture you've been looking for, rather than dozens of puzzle pieces you must assemble yourself. First, explore the core concepts of Clojure development: learn how to model your domain with immutable data; choose the ideal collection; and write simple, pure functions for efficient transformation. Next you'll apply those core concepts to build applications: discover how Clojure manages state and identity; spread your work for concurrent programming; and create and assemble components. Finally, see how to manage external integration and deployment concerns by developing a testing strategy, connecting with other data sources, and getting your libraries and applications out the door.
Go beyond the toy box and into Clojure's way of thinking. By the end of this book, you'll have the tools and information to put Clojure's strengths to work.
What You Need:
To follow along with the examples in the book, you will need Clojure 1.6, Leinegen 2, and Java 6 or higher.
- ISBN-101680500740
- ISBN-13978-1680500745
- Edition1st
- PublisherPragmatic Bookshelf
- Publication dateOctober 6, 2015
- LanguageEnglish
- Dimensions7.5 x 0.51 x 9.25 inches
- Print length240 pages
Frequently bought together

Similar items that may deliver to you quickly
Clojure Brain Teasers: Exercise Your Mind (Pragmatic Programmers)PaperbackFREE Shipping on orders over $35 shipped by AmazonGet it as soon as Saturday, Apr 25Only 5 left in stock (more on the way).
Programming Clojure (The Pragmatic Programmers)PaperbackFREE Shipping by AmazonGet it as soon as Saturday, Apr 25Only 10 left in stock (more on the way).
Getting Clojure: Build Your Functional Skills One Idea at a TimePaperbackFREE Shipping by AmazonGet it as soon as Saturday, Apr 25Only 3 left in stock (more on the way).
Clojure for the Brave and True: Learn the Ultimate Language and Become a Better ProgrammerPaperbackFREE Shipping by AmazonGet it as soon as Saturday, Apr 25
Web Development with Clojure: Build Large, Maintainable Web Applications InteractivelyPaperbackFREE Shipping by AmazonGet it as soon as Saturday, Apr 25Only 2 left in stock (more on the way).
Customers also bought or read
- Clojure for the Brave and True: Learn the Ultimate Language and Become a Better Programmer#1 Best SellerLisp Programming
Paperback$42.55$42.55FREE delivery Sat, Apr 25 - Web Development with Clojure: Build Large, Maintainable Web Applications Interactively
Paperback$41.96$41.96FREE delivery Sat, Apr 25 - Living Clojure: An Introduction and Training Plan for Developers
Paperback$23.97$23.97Delivery Sat, Apr 25 - Mastering Clojure Macros: Write Cleaner, Faster, Smarter Code
Paperback$17.00$17.00Delivery Sat, Apr 25 - Getting Clojure: Build Your Functional Skills One Idea at a Time
Paperback$43.49$43.49FREE delivery Sat, Apr 25
From the Publisher
Q&A with Ben Vandgrift and Alex Miller, authors of Clojure Applied
Why did we write Clojure Applied?
When Ben was first getting to know Clojure, he found himself awash in tutorials about syntax, toy example applications, and a few places to start. These things were immensely helpful, and he was grateful to their authors.
Eventually, there came a time when he wanted to apply Clojure to a real-world application. Something for a client. Something production-quality and deployable. The publicly available information grew a bit thin. Ben wanted to learn how to think in Clojure, not just at the function level, but across the board. He wanted to take this beautiful language and apply it to something bigger than a bread box.
Fast forward a couple of years. On several occasions, Ben and Alex had spoken about this problem. They referred to it as the 201 Problem. Programmers who understood the basic syntax and had a fair amount of experience in software development couldn't connect the dots up to a large-scale project in Clojure.
During one of these conversations Alex said, “We need to decrease the angle of the ramp,” and the phrase stuck. Clojure is perfectly capable of solving life-size problems—wonderfully and elegantly—but developers needed a few more lines between the dots.
We joined forces on a quest to go beyond the syntax and provide a guide to practical application of the Clojure language.
Is this book's approach idiomatic?
Together, we have used Clojure to build a number of applications from small to large. While we believe the style and forms we describe are in wide use, it’s difficult to say what is and isn’t idiomatic, especially among members of an innovative and opinionated community.
Every application is unique, but they share common problems and patterns. Whether you begin with the data structures and push outward, or at the component or subsystem level and slice downward, you’re going to need to make decisions about which processes to push into the background, how to manage state, component life cycles, inter-process communication, etc. There are many common points of decision when constructing an application.
Instead of laying down hard and fast rules, we focus on the Clojure-specific tradeoffs related to each topic. We recommend some practices, introduce several advanced concepts as options, and provide context to help support good decision-making. This approach will apply to all Clojure developers in their professional practice.
Additionally, we try and impress on the readers the flow of Clojure development. Developing in Clojure means adopting some of its values and history. We want them to be able to swim with the current, rather than against it.
As a growing community, why call out libraries and tools that may change?
In Clojure Applied, we point out several libraries that we use regularly for communication, configuration management, validation, and other functionality most applications will need. Yes, they may change, and our recommendations might change with them. That’s the nature of open source software. We have chosen libraries that are useful right now.
Over time, we might choose differently. Other tools may come to the fore.
When that happens, we’ll update the readers via the book's web site, and through digital updates and future editions. Clojure is mature for its age, but much of its ecosystem is still a moving target. As authors and contributors, we have to move with it.
Our goal was to provide a leg up, a good start. A talented software developer will do their own homework and make their own choices around tooling. It’s nice, however, to have a few places to start. As we mentioned earlier, our goal is to decrease the angle of the ramp. It’s equally important that we don’t try and reinvent wheels—especially early in our practice when learning a new language.
Any final words?
Solving a life-size problem is entirely possible in Clojure—simpler, in fact, than it would be in many other languages. Getting to that point from bare syntax is the journeyman's tale. We've had the good fortune to work alongside many skilled Clojurists, and learn from their examples.
Not everyone is this lucky, and so we're passing on our hard-won knowledge. This is why we’ve written Clojure Applied. We hope you enjoy the journey, and we'll see you on the other side.
Editorial Reviews
Review
"While other Clojure books enumerate the beautiful, pristine qualities derived from immutability and functional programming, this book is about getting your hands very dirty. Clojure Applied takes you step by step through the process of designing, writing, and shipping robust high-performance production systems." - David Nolen
About the Author
Alex Miller was about to give up on programming as irretrievably complex when he found Clojure, which renewed his love for code. Alex works by day on improving Clojure and spends his off hours organizing the Strange Loop conference and playing music with his kids.
Product details
- Publisher : Pragmatic Bookshelf
- Publication date : October 6, 2015
- Edition : 1st
- Language : English
- Print length : 240 pages
- ISBN-10 : 1680500740
- ISBN-13 : 978-1680500745
- Item Weight : 2.31 pounds
- Dimensions : 7.5 x 0.51 x 9.25 inches
- Best Sellers Rank: #1,977,269 in Books (See Top 100 in Books)
- #46 in Lisp Programming
- #1,908 in Computer Programming Languages
- #1,909 in Software Development (Books)
- Customer Reviews:
About the authors

Alex Miller maintains Clojure at Nubank and is the creator of the Strange Loop developer conference. He lives in St. Louis.

Discover more of the author’s books, see similar authors, read book recommendations and more.
Related products with free delivery on eligible orders
Customer reviews
- 5 star4 star3 star2 star1 star5 star70%25%5%0%0%70%
- 5 star4 star3 star2 star1 star4 star70%25%5%0%0%25%
- 5 star4 star3 star2 star1 star3 star70%25%5%0%0%5%
- 5 star4 star3 star2 star1 star2 star70%25%5%0%0%0%
- 5 star4 star3 star2 star1 star1 star70%25%5%0%0%0%
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonTop reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on April 25, 2017Format: PaperbackVerified PurchaseGreat step by step on actually implementing a Clojure project from start to finish
- Reviewed in the United States on October 21, 2016Format: PaperbackVerified PurchaseThis book filled in some gaps I was missing. Really well written.
- Reviewed in the United States on September 17, 2015Format: PaperbackVerified PurchaseWhile I love the content that I've been able to read so far, I was a bit confused to find out that an extra copy of pages 15-30 come BEFORE page 1. Stranger things have happened in printing I guess... Anyway, I assume this to be an issue w/ the printers and I hope that it's fixed in later printings but it is a bit disconcerting and makes one doubt the quality of the content right off the bat.
Several corners of the book were damaged in transit but this doesn't detract from the content of course.
So far this is definitely an intermediate -> advanced level book (which is fantastic, btw!)
- Reviewed in the United States on September 27, 2015Format: PaperbackClojure Applied fills an important niche in the ecosystem of Clojure books by doing a couple things really, really well:
1. The book conveys how to write programs in "Clojure style" exhibiting good judgment and taste. Clojure is not an especially difficult language to learn in terms of its constructs and syntax, but for many newcomers, it is difficult to learn how think and solve problems in the natural Clojure way. Furthermore, there are often several features in Clojure with overlapping functionality (e.g., protocols vs multimethods, records vs maps), and this book provides clear guidelines about the tradeoffs and which features are better to use when.
2. The book is quite open about a number of "gotchas" in the language, and helps you avoid those pitfalls.
Overall, the book is the next best thing to pairing with an expert Clojure programmer, and will likely shave months off of your Clojure ramp-up time.
I rated the book 5 stars because there's nothing else on the market that offers exactly what this book does, and I consider this book an important step forward for the Clojure community. However, I should note that the book is by no means perfect. There is still room for improvement:
* Chapter 6 is too high-level, and doesn't give enough specific examples. For example, the chapter talks about the importance in large projects of breaking out protocols, data structures, and implementations into separate namespaces, but doesn't really show how to do this. I personally have found it incredibly difficult to break large projects into separate namespaces without creating cyclic dependencies, and I consider this a real weakness of Clojure. Yet, I've heard Alex Miller and a few others say it's not really a big deal to accomplish this separation of concerns without creating cyclic dependencies. I was truly looking forward to discovering from this book how he pulls that off, figure out what he does differently than I, but the book contained no concrete details on this important matter.
* No discussion of debugging strategies, and what does and does not work for debugging when using Clojure on large-scale projects. Specifically, I expected this book to address the question of how to handle errors in core.async-driven programs. It is not at all obvious how to use channels in a robust way that is fault-tolerant, and given the amount of coverage this book gives to core.async, fault tolerance should also have been covered.
* There were a few random things that I thought were misleading and could benefit from an additional sentence or two of clarification. For example, "The keep function combines the capabilities of map and filter in one convenient package, applying a function to each element and keeping any non-nil results." The problem with this sentence is that if you combine map and filter, you would end up keeping all non-falsey results, not all non-nil results. I think most readers will either not notice the clarifying "non-nil" and think keep works just like map+filter, or they will notice "non-nil" but incorrectly assume that filter behaves the same way and filters out nil values (as opposed to all falsey values).
- Reviewed in the United States on October 14, 2015Format: PaperbackVerified PurchaseClojure Applied discussed many aspects of using Clojure that are relevant to real world projects. I enjoyed the author's approach and found the entire book very useful and enlightening. One area that I wish would have been covered was persistence. While most other aspects of real world systems are treated, persistence options and ideas on how to treat persistence in a functional manner were left out. That is my only reason for not giving this five stars.
- Reviewed in the United States on September 21, 2015Format: PaperbackI've gone through quite a few Clojure tutorials/online resources/books by now... For me this has been the best.
I have met Alex Miller in person and have taken a couple day course from him (which was absolutely excellent). It isn't surprising to me that this book ended up being as clear in text as he can be in person doing presentations.
Overall I feel like the information from this book is really essential for me as my team moves forward in our Clojure projects. It has helped me get to the next level in my learning and application of Clojure to our projects, and it bridges a lot of gaps for me between several intro tutorials and real-life work.
Anyhow I definitely recommend this book, for me it's a required modest investment in my journey.
- Reviewed in the United States on September 15, 2015Format: PaperbackI think I have all the beginning clojure books and have been studying them for a year, I was excited to hear about this book being written for intermediate clojure and waited anxiously for publication. The book did not disappoint. It teaches you how to do clojure in the real world with practical application. From modeling your domain, to using components to create your application and how to deploy it. The examples are fun (modeling planets) and somewhat practical (change from oz to pounds for a recipe). I also really liked the section on organizing your application. This is a great book for the intermediate clojure developer who is looking to move beyond the basics. Highly Recommend!!
Top reviews from other countries
-
river125Reviewed in Japan on September 20, 20175.0 out of 5 stars 理論から実践へ
Format: PaperbackVerified Purchase関数型プログラミングに入門し、練習問題を解いたり小さなツールを作ったりしながら訓練した人が、いよいよ実践的な本物のプログラムを作ろうかというときに役立つ本だと思う。
自分が関数型プログラミングを覚え始めたころ、その簡明さの虜になる一方で、設計手法的にはオブジェクト指向より前(C言語の手続き指向)の時代に退化したような印象を感じた(クラス無しで、どうやってモジュール化するか?)。そんな悩める子羊を救ってくれる本だ。
扱うトピックは、設計からテスト、デプロイまで幅広い。中でも独自コレクションの実装方法(IPersistentCollectionやILookupなど)やEDNの拡張方法まで解説してるのは珍しい。ちょっとだけtransducerにも言及する。1つのアプリを作り上げながら解説を進めるスタイルではないので注意。題材として使う個々のアプリ例は断片的だ。
こういう本の日本語訳が無いというのは残念。
-
アッカ78Reviewed in Japan on October 15, 20213.0 out of 5 stars Kindle版だとソースコードのインデントがガタガタです
内容は良いと思います。基礎を終えた人向けに、やや実践寄りのコードを示して解説してくれます。
しかし、Kindle版だとソースコードのインデントがガタガタです(iPadやPCブラウザで確認しました)。
Lispはインデントが命なので、これは困ります。












![MFT Study Guide: 3 Full-Length Practice Tests, Secrets Review for the Marriage and Family Therapy National Licensing Exam: [2nd Edition]](/web/20210225185730if_/https://code.visualstudio.com/assets/github-https-m.media-amazon.com/images/I/51kN9x5KHwL._AC_SR100,100_QL65_.jpg)