Clojure for the Brave and True
Clojure for the Brave and True
About the Book
This book will be published by No Starch Press when it's complete
*Clojure!*
For weeks, months — no! from the very moment you were born — you've felt it calling to you. Every time you've held your keyboard aloft, crying out in anguish over an incomprehensible class hierarchy; every time you've lain awake at night, disturbing your loved ones with sobs over a mutation-induced heisenbug; every time a race condition has caused you to pull out more of your ever-dwindling hair, some secret part of you has known that there has to be a better way.
Now, at long last, the instructional material you have in front of your face will unite you with the programming language you've been longing for.
Are you ready, brave reader? Are you ready to meet your true destiny? Get your best pair of parentheses: you're about to embark on the journey of a lifetime!
The Four Labyrinths
To wield Clojure to its fullest, you will need to find your way through the four labyrinths confronting every programmer learning a new language:
- The Cave of Artifacts. In its depths you'll learn to build, run, and distribute your own programs and use the libraries of others. You'll learn Clojure's relationship to the JVM.
- The Forest of Tooling. Getting your environment set up so that you can quickly try things out and learn from them is paramount.
- The Mountain of Language. As you ascend, you'll gain knowledge of Clojure's syntax, semantics, and data structures.
- The Cloud Castle of Mindset. In its rarified air you will come to know the why and how of lisp, functional programming, and immutability.
Such a quest is fraught with obstacles and dead ends. But fear not, dear reader! This guide is here to guide you!
Table of Contents
-
The Programming Language You’ve Been Longing For
- Journey through the Four Labyrinths
- TOC at a Glance
- Part 1: Environment Setup
- Part 2: Language Fundamentals
- Part 3: Extra-Fun Topics
-
Building, Running, and The REPL
- First things first: What is Clojure?
- Leiningen
- Chapter Summary
-
Start Using Emacs
- Installation
- Configuration
- Emacs Escape Hatch
- Emacs Buffers
- Working with Files
- Key Bindings and Modes
- Core Editing Terminology and Key Bindings
- Continue Learning
- Summary
-
Using Emacs with Clojure
- Fire up your REPL!
- Interlude: Emacs Windows and Frames
- A Cornucopia of Useful Key Bindings
- How to Handle Errors
- Paredit
- Chapter Summary
-
Do Things: a Clojure Crash Course
- Syntax
- Data Structures
- Functions
- Pulling It All Together
- What Now?
-
Core Functions in Depth
- Programming to Abstractions
- The Sequence Abstraction
- The Collection Abstraction
- Function Functions
- FWPD
- Chapter Summary
-
Functional Programming
- Pure Functions, What and Why
- Living with Immutable Data Structures
- Cool Things to do With Pure Functions
- Peg Thing®
- Chapter Summary
-
Organizing Your Project: a Librarian’s Tale
- Your Project as a Library
- Storing Objects with def
- Creating and Switching to Namespaces
- refer and alias
- Real Project Organization
- To Catch a Burglar
- Summary
-
Clojure Alchemy: Reading, Evaluation, and Macros
- The Philosopher’s Stone
- The Reader
- Reader Macros
- Evaluation
- Macros
- A Syntax Abstraction Example: The -> Macro
-
Writing Macros
- What Macros Are
- Anatomy of a Macro
- Building Lists for Evaluation
- Applying Your Knowledge to a Macro
- Refactoring a Macro & Unquote Splicing
- Things to Watch Out For
- Brews for the Brave and True
- Some Final Advice
-
Concurrency, Parallelism, and State. And Zombies.
- Why Parallel Programming Matters
- Concurrency and Parallelism Concepts
- Clojure Implementation: JVM Threads
- Futures, Delays, and Promises
- Escaping The Pit of Evil
- Atoms
- Watches and Validators
- Refs
- Vars
- Stateless Concurrency and Parallelism
- Summary
-
Master Concurrent Processes with core.async
- Processes
- Go Blocks, thread, Blocking, and Parking
- The Hot Dog Process You’ve Been Longing For
- Choice
- Queues
- Callbacks
- Additional Resources
- Summary
-
Interacting with Java
- The JVM
- Compiling and Running a Java Program
- Java Interop
- Commonly Used Java Classes
- Summary
- Resources
-
Multimethods, Records, and Protocols
- Abstractions, Implementations, and Polymorphism
- Multimethods
- Protocols
- Records
- Further Study
- Summary
-
Building and Developing with Leiningen
- The Artifact Ecosystem
- Plugins
- Summary
The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them