Sponsored
Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows.
Buy New
-15% $42.55
FREE delivery Saturday, April 25
Ships from: Amazon.com
Sold by: Amazon.com
$42.55 with 15 percent savings
List Price: $49.99 Image
FREE delivery Saturday, April 25
Or Prime members get FREE delivery Tomorrow, April 21. Order within 13 hrs 41 mins. Join Prime
In Stock
$$42.55 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$42.55
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Shipper / Seller
Amazon.com
Amazon.com
Shipper / Seller
Amazon.com
Returns
FREE 30-day refund/replacement
FREE 30-day refund/replacement
Quick refund
Usually issued within 24 hours. See exceptions
FREE return
At least one free return option available.
Convenient dropoff
At any of our 50,000 US locations.
See return policy
Gift options
Available at checkout
Available at checkout This item is a gift. Change
At checkout, you can add a custom message, a gift receipt for easy returns and have the item gift-wrapped
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
$13.60
Get Fast, Free Shipping with Amazon Prime FREE Returns
No highlighting, marks or writing. Gently Used, remains in clean condition, all pages & cover are intact, spine/cover may show minimal signs of wear. No highlighting, marks or writing. Gently Used, remains in clean condition, all pages & cover are intact, spine/cover may show minimal signs of wear. See less
FREE delivery Saturday, April 25 on orders shipped by Amazon over $35
Or Prime members get FREE delivery Thursday, April 23. Order within 6 hrs 31 mins. Join Prime
Only 1 left in stock - order soon.
$$42.55 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$42.55
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Access codes and supplements are not guaranteed with used items.
Added to

Sorry, there was a problem.

There was an error retrieving your Wish Lists. Please try again.

Sorry, there was a problem.

List unavailable.
Kindle app logo image

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.

QR code to download the Kindle App

  • Clojure for the Brave and True: Learn the Ultimate Language and Become a Better Programmer

Follow the author

Get new release updates & improved recommendations
Something went wrong. Please try your request again later.

Clojure for the Brave and True: Learn the Ultimate Language and Become a Better Programmer 1st Edition

4.6 out of 5 stars (206)

{"desktop_buybox_group_1":[{"displayPrice":"$42.55","priceAmount":42.55,"currencySymbol":"$","integerValue":"42","decimalSeparator":".","fractionalValue":"55","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"rM4OsUPQejS9k5J0MKy%2B%2Fn6hX9%2FFmmcmsQ5mML4RAIgRfps9ZXYrxUKSXQCLzT13wY66sEHRjTKl8Qjmb8%2BGorFUozEkHEBa6kG3ipHS3%2BHSSiZCQyyxfFyttHosFkXg4VPKhEcyDGm6AbSMRVGhUw%3D%3D","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$13.60","priceAmount":13.60,"currencySymbol":"$","integerValue":"13","decimalSeparator":".","fractionalValue":"60","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"rM4OsUPQejS9k5J0MKy%2B%2Fn6hX9%2FFmmcmMnM9McTj8FEfZflxRJP7IGAq51hr5p2xZtb2KrRDgForbUklICQ8CwnMkQUwHvLvFgiA7dRb6Xdht0TT02zxKzYC%2BCJLF2UP6djRL5rzSjd66JmUl%2BMxvshKw%2BDEuYJiNM01QPiAx5rvVbNHoToyjZFfsRsEh0OU","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons

For weeks, months—nay!—from the very moment you were born, you’ve felt it calling to you. At long last you’ll be united with the programming language you’ve been longing for: Clojure!

As a Lisp-style functional programming language, Clojure lets you write robust and elegant code, and because it runs on the Java Virtual Machine, you can take advantage of the vast Java ecosystem. Clojure for the Brave and True offers a "dessert-first" approach: you’ll start playing with real programs immediately, as you steadily acclimate to the abstract but powerful features of Lisp and functional programming. Inside you’ll find an offbeat, practical guide to Clojure, filled with quirky sample programs that catch cheese thieves and track glittery vampires.

Learn how to:
–Wield Clojure’s core functions
–Use Emacs for Clojure development
–Write macros to modify Clojure itself
–Use Clojure’s tools to simplify concurrency and parallel programming

Clojure for the Brave and True assumes no prior experience with Clojure, the Java Virtual Machine, or functional programming. Are you ready, brave reader, to meet your true destiny? Grab your best pair of parentheses—you’re about to embark on an epic journey into the world of Clojure!
Sponsored

Frequently bought together

This item: Clojure for the Brave and True: Learn the Ultimate Language and Become a Better Programmer
$42.55
Get it as soon as Saturday, Apr 25
In Stock
Ships from and sold by Amazon.com.
+
$37.72
Get it May 21 - Jun 11
Usually ships within 7 to 8 days
Ships from and sold by World Deals, USA.
+
$49.95
Get it as soon as Saturday, Apr 25
Only 10 left in stock (more on the way).
Ships from and sold by Amazon.com.
Total price: $00
To see our price, add these items to your cart.
Details
Added to Cart
Some of these items ship sooner than the others.
Choose items to buy together.

Customers also bought or read

Loading...

Editorial Reviews

Review

"Daniel's approach is refreshing because most of the programming books I’ve read are drier than a camel’s fart. We are fortunate that Daniel is a brilliant programmer and writer and that his wife Jess is an equally brilliant illustrator. We are especially fortunate that they both went insane and decided to write a book at exactly the same time."
—Alan Dipert, from the Foreword

"This book is a valuable starting point for exploring Clojure, supplying a coherent and current view of the full landscape."
—Computing Reviews

"I am not the target audience for this book as I not a new Clojure developer, however it was so much fun to read that I read it anyways. If you're looking for a way to start Clojure with fun examples and engaging explanations, I heartily recommend that you check out
Clojure for the Brave and True."
—Alex Miller, Clojure developer for Cognitect

"Strike[s] that balance between teaching an advanced topic and making it fun without dumbing it down...highly recommended!"
—Adam Tornhill, programmer, psychologist, and Lisp hacker

About the Author

Daniel Higginbotham has been a professional programmer for eleven years, half of that at McKinsey & Company, where he used Clojure to build mobile and web applications. He has also contributed to the curriculum for ClojureBridge, an organization that offers free, beginner-friendly Clojure workshops for women. Daniel blogs about programming and life at http://www.flyingmachinestudios.com, and can be found on Twitter, @nonrecursive. He lives in Durham, North Carolina, with his wife and four cats.

Product details

  • Publisher ‏ : ‎ No Starch Press
  • Publication date ‏ : ‎ October 15, 2015
  • Edition ‏ : ‎ 1st
  • Language ‏ : ‎ English
  • Print length ‏ : ‎ 336 pages
  • ISBN-10 ‏ : ‎ 1593275919
  • ISBN-13 ‏ : ‎ 978-1593275914
  • Item Weight ‏ : ‎ 1.4 pounds
  • Dimensions ‏ : ‎ 7.01 x 0.75 x 9.25 inches
  • Best Sellers Rank: #117,628 in Books (See Top 100 in Books)
  • Customer Reviews:
    4.6 out of 5 stars (206)

About the author

Follow authors to get new release updates, plus improved recommendations.
Daniel Higginbotham
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Discover more of the author’s books, see similar authors, read book recommendations and more.

Sponsored

Customer reviews

4.6 out of 5 stars
206 global ratings
Sponsored

Customers say

Customers find this Clojure book to be a great resource for learning the language, with clear explanations of fundamental features. They appreciate the lein and Emacs introductions, and one customer notes it provides excellent code examples. Customers describe the book as fun and well-written.
AI Generated from the text of customer reviews

Select to learn more

24 customers mention content, 22 positive, 2 negative
Customers find the content of the book engaging and educational, particularly for those interested in learning Clojure, with one customer specifically praising Chapter 2.
Great bookRead more
"Clojure for the Brave and True" is one of the best books, on any topic, to come out in the last 350 years....Read more
Great book for learning Clojure. I looked at, and have a read a few others, but this is my favorite intro book.Read more
It's a great book to get started with Clojure and Functional Programming....Read more
12 customers mention humor, 11 positive, 1 negative
Customers find the book humorous and fun to read.
Quite fun book, however a bit superficial about very interesting topics. Number of jokes is a bit less than I expected, but still quite funRead more
...I ended up reading this one as the FIRST book. Good coverage. Fun to read.Read more
...This book is so much fun and it’s full of humor, memorable images, and wisdom. Daniel Higginbotham is an excellent teacher....Read more
...I generally like the content and the humorous way it's presented. I also own two other very good Clojure texts. The Peg...Read more
10 customers mention introduction, 10 positive, 0 negative
Customers appreciate how the book explains concepts and provides good examples, particularly noting its comprehensive coverage of fundamental features of Clojure, including lein and Emacs introductions.
I was pleased with the lein and Emacs intros I read in the on-line version of the book, so I purchased it....Read more
Excellent intro to Clojure. I worked through most of it online, but ordered a hardcopy of the book anyway :)Read more
Concisely describes the fundamental features of clojure....Read more
Well explained, well exampled, and incredibly humorous. Written by someone who clearly wants you to love what you’re learning.Read more
5 customers mention writing quality, 4 positive, 1 negative
Customers praise the writing quality of the book, with one noting that the author knows his subject well.
...The prose is good and the examples in the book have been proof read (a rare thing!) and work....Read more
...It is punchy, relevant, well-written, and mercifully unbombastic. It is earthy, but it is lofty too....Read more
Well written, funny and loaded with useful Clojure content. The whole contents of the book are on Daniel's website....Read more
The book is good but it leaves a lot of holes and it's not succinctly elegant in its presentation of the material.Read more
Seems like a great book... Just not on Kindle
2 out of 5 stars
Seems like a great book... Just not on Kindle
Book seems great! But the kindle formatting errors make it impossible to read. On iOS 10.2 for both iPad and iPhone with the most up to date kindle app.
Thank you for your feedback
Sorry, there was an error
Sorry we couldn't load the review

Top reviews from the United States

  • Reviewed in the United States on November 3, 2015
    Format: PaperbackVerified Purchase
    update: 2016-01-04: just finished chapter 6 "Organizing Your Project: A Librarian’s Tale". So far so good (fyi, I'm not working through this full time, so don't read too much into the tempo of my updates). Had some fiddle with the svg to get it to render on my ubuntu vm, but it got there. The most surprising thing was the use of -> and ->> (Thread First & Thread Last macros, respectively), which I had to do a little digging on to understand as I didn't see where it was covered in the text... I would have preferred to see the example code done "long-form way". But so far so good, I'm enjoying the read.
    Chapter 5 "Functional Programming" was both enjoyable and helpful, and the game example was pleasantly educational. I ended up manually keying large parts of the game function, just to get practice debugging and executing each bit and coding some unit tests to help me understand what it does. I also found the "assert" function on my own and coded up some tests in my clj file (not covered in the book, but figured I'd mention that here for anyone who is a fan of test driven development to consider): example...
    (defn row-num
    "Returns row number the position belongs to:
    row : positions
    1 : 1
    2 : 2 3
    3 : 4 5 7"
    [pos]
    (inc (count (take-while #(> pos %) tri))))
    ; tests... ; row# : positions...
    (assert (= 1 (row-num 1))) ; 1 : 1
    (assert (= 3 (row-num 5))) ; 2 : 2 3
    (assert (= 4 (row-num 10))) ; 3 : 4 5 6
    (assert (= 5 (row-num 15))) ; 4 : 7 8 9 10
    (assert (= 6 (row-num 16))) ; 5 : 11 12 13 14 15
    ; tests on pos#'s 10, 15 & 16 ; 6 : 16 17 18 19 20 21
    ; are intended to catch boundary conditions (spans rows 4, 5 & 6).
    (println "TESTS OK: row-num")

    I also ended up weaving "println"s and "let"s into the various functions to help me understand what they do. Makes the functions much more verbose, but helpful for my head to "see" what is going on in the inside.
    example:
    (defn connect
    "Form a mutual connection between two positions"
    [ board max-pos pos neighbor destination ]
    (do
    (if trace (println "\n---- connect: max-pos=" max-pos ", pos=" pos ", neighbor=" neighbor ", destination=" destination))
    (if (<= destination max-pos)
    (let [ result
    (reduce (fn [new-board [p1 p2]]
    (do
    (if trace (do (println "reduce.new-board" new-board)
    (println "reduce.p1" p1)
    (println "reduce.p2" p2)))
    (assoc-in new-board [p1 :connections p2] neighbor)))
    board

    (do
    (if trace (do (println "reduce.new-board" new-board)
    (println "reduce.p1" p1)
    (println "reduce.p2" p2)))
    (assoc-in new-board [p1 :connections p2] neighbor)))
    board
    )]
    (if trace (println "\nresult=" result))
    result)
    board)))

    ( let [ c (connect {} 15 1 2 4)]
    ; expected: {1 {:connections {4 2}}, 4 {:connections {1 2}}}
    (assert (= 2 (count c))) ; top level keys, 1 & 4.
    (assert (contains? c 1))
    (assert (contains? (get c 1) :connections))
    (assert (contains? (get (get c 1) :connections) 4))
    (assert (= 2 (get (get (get c 1) :connections) 4)))
    (assert (contains? c 4))
    (assert (contains? (get c 4) :connections))
    (assert (contains? (get (get c 4) :connections) 1))
    (assert (= 2 (get (get (get c 4) :connections) 1)))
    (println "TESTS OK: connects")
    )

    Chapters 4 "Core Functions in Depth" was interesting, I will be re-reading this again after the sequences and lazy evaluation has some time to sink in... this feels like it will be a big (albeit productive) change in my programmer's world-view. I especially enjoyed the smaller examples, they were thought provoking. For example: "If you want an exercise that will really blow your hair back, try implementing map using reduce, and then do the same for filter and some after you read about them later in this chapter."
    Chapter 3 "Do Things: A Clojure Crash Course" had a good temp; the 'hobbit violence' example actually helped me think through more traditional data structures and "clojure style".
    update: 2015-11-27: after driving emacs for a while, it reminds me of a much smarter notepad, while I miss the "surgical precision" that I can navigate with in vi, I can see making emacs my clojure ide.

    Love it! Life-long vi user here making the transition to emacs as part of the Clojure learning curve, and I found the online "Chapter 2 How to Use Emacs, an Excellent Clojure Editor". I bought the paperback version just now because Chapter 2 is simply That Awesome.

    Thank you, good sir, for making what looked like a steep learning curve seem very manageable.

    My favorite quote thus far:
    "Emacs was invented in, like, 1802 or something, so it uses terminology slightly different from what you’re used to. What you would normally refer to as a window, Emacs calls a frame..."
    I'm just not used to laughing that hard when reading technical books :-)

    Seriously, the author has put a LOT of energy and thought into how to boil down, package and guide the reader through a complex landscape and I'm impressed with how artfully they do it. I will update when I reach the end.
    13 people found this helpful
    Report
  • Reviewed in the United States on November 5, 2018
    Format: PaperbackVerified Purchase
    This is one of my favorite computer books. I read it cover to cover. It's a great introduction Lisp and Clojure. Someone with limited programming experience could pick up this book and get an understanding of functional programming. The examples scenarios involve super heros and vampires, which might seem odd at times, but that's what makes it fun, as opposed to a dry HTTP request pressing example. I'll tell you, some of the other Clojure books are quite boring to read. The original artwork in Brave and True is enjoyable.

    Chapter 7, on macros and the Clojure reader/evaluator, WOW! This is where you get your mind blown when you understand how you can use code to generate code. This is something you'll never have seen if you come from Ruby, Python, JavaScript world. There are a bunch of diagrams that explain how the Clojure reader and evaluator works. I would recommend "Mastering Clojure Macros" book for in depth study of macros.

    I would recommend skipping the chapter on emacs if you're not a regular emacs user. Leaning Clojure and emacs at the same time is too much effort. Use your favorite editor then join the church of emacs later.

    Get this book if you're learning Clojure.
    10 people found this helpful
    Report
  • Reviewed in the United States on March 20, 2016
    Format: PaperbackVerified Purchase
    I was pleased with the lein and Emacs intros I read
    in the on-line version of the book, so I purchased it.
    I generally like the content and the humorous way it's
    presented.

    I also own two other very good Clojure texts. The Peg
    Thing program was of special interest to me, as I have
    implemented code in several languages, not to play but
    to solve the game given the missing peg location. So I
    downloaded the code and successfully ran it. Nicely done.

    I was curious about Peg Thing's data structures. Right off
    the bat I discover this in the core.clj file:

    (ns pegthing.core
    (require [clojure.set :as set])
    (:gen-class))

    Great! I think. I also used sets (and maps) in several of
    my solutions. But when I examine the code, I can't find
    sets (or set functions) used anywhere.

    A question for the author: What discouraged you from using
    sets in your solution?
    2 people found this helpful
    Report

Top reviews from other countries

Translate all reviews to English
  • Jayne
    5.0 out of 5 stars Great
    Reviewed in the United Kingdom on December 11, 2024
    Format: PaperbackVerified Purchase
    Brought for someone else they are happy and find it helpful
  • Veritech
    5.0 out of 5 stars Buen contenido, fácil de digerir
    Reviewed in Mexico on October 3, 2022
    Format: KindleVerified Purchase
    Para alguien que inicia con Clojure es una lectura que recomiendo por lo ameno con que aborda los temas.
    Report
  • K. Haferkamp
    5.0 out of 5 stars Ein guter Einstieg in Clojure und Lisp - nichts für den Einstieg in die Programmierung!
    Reviewed in Germany on March 21, 2020
    Format: PaperbackVerified Purchase
    Ich habe dieses Buch bereits angefangen online zu lesen und habe mich auf Grund der guten Qualität entschieden, dass Buch als Print zu beschaffen.

    Mir gefällt der Schreibstil und der Humor sehr gut.

    Clojure selbst ist schon ein schweres Thema. Mit der Lisp Syntax bzw. eben dem Fehlen einer Syntax muss man erst mal klarkommen. Meine ersten Lisp/Scheme Versuche tat ich mit Racket, daher ging.

    Dieses Buch beinhaltet auch eine kurze Einführung in Emacs. Ebenfalls mächtiges Thema. Bis jetzt springe ich immer zwischen Emacs und VS Code mit Calva hin und her.

    Der „Aha Moment“, den ich mit versprach, kam dann auch endlich, als man wirklich Macros definierte. Das Buch lässt sich wirklich gut am Stück schmökern und manchmal muss man eben erst die nächsten Kapitel lesen und wieder zurück blättern, bis das alles auf einmal Sinn ergibt. Daher werde ich dieses Buch sicherlich noch mindestens ein bis zwei Mal wälzen und mir die guten Beispiele noch mal im Detail angucken.

    Sehr empfehlenswert, wenn man in die Funktionale Programmierung einsteigen möchte, ohne gleich FP und ein umfangreiches Typsystem lernen zu müssen. Der Vorteil das Wissen dank des Java Ökosystems nicht nur akademisch verwenden zu können, belohnt den Weg auf jeden Fall.

    Aber es ist nichts für mal am Wochenende. Wer das akzeptiert wird sicherlich viel Spaß daran finden :)
  • Brent Daignault
    5.0 out of 5 stars Not many good Clojure books. This is one of them. Buy it.
    Reviewed in Canada on May 14, 2019
    Format: PaperbackVerified Purchase
    Humor helps to reduce the dryness of your standard programming book. Gets through the material in a delightful way. Recommend it highly.
  • Frederic Alix
    5.0 out of 5 stars amazing book
    Reviewed in France on April 22, 2023
    Format: PaperbackVerified Purchase
    it s one of the best programming book I read.
    I learn quickly how to program Clojure program.
    It was a real pleasure to read it !