Clojure Resource Center

Register for a free account or log in to access these resources.

clj-refactor Reference Sheet

These four reference sheets will be handy for you when you’re learning clj-refactor, the plugin for CIDER.

Clojure core.async Reference Sheet

Overwhelmed by the number of functions in Clojure core.async? This reference sheet shows you just the essentials in an easy-to-follow format.

Clojure Macro Patterns Reference

We tend to code using patterns that we repeat a lot. Learning these patterns can help you level up your macro skills very quickly. This reference sheet contains six annotated patterns that Clojure programmers use all the time.

Clojure Macro Sigils Reference

Have you ever wondered what the symbols in Clojure macros do? I’m talking about `, ~, ~@, etc. This handy reference sheet tells you what they all do, when to use it, and shows examples. Never get lost in a macro again!

Clojure Macroexpand Reference

When we’re developing macros, it really helps to be able to see what code it will output. Fortunately, Clojure comes with three built-in functions for doing just that. They are so useful for debugging. This reference sheet shows what each one does. It also includes how to access macroexpansion in the three most popular Clojure IDEs.

Clojure.test Cheatsheet

Want a handy reference for writing your tests? This cheatsheet contains everything you need to write tests, make assertions, and set up fixtures. It even shows the commands for runnings tests at the REPL.

Most Common Clojure Expression Flashcards (Anki CSV)

How to install:

  1. Download the CSV file.
  2. Install Anki.
  3. Run Anki.
  4. Click Import at the bottom of the window.
  5. Import the CSV file.
  6. Adjust the options like you see them below.

Most Common Clojure Expression Flashcards (Avery 5371)

When I was learning Spanish, I liked to use Anki to drill new vocabulary. It’s a flashcard program. I found that someone had made a set of cards from an analysis of thousands of newspapers. They read in all of the words from the newspapers, counted them up, and figured out what the most common words were. The top 1000 made it into the deck.

It turns out that this is a very good strategy for learning words. Word frequency follows a hockey stick distribution. The most common words are used so much more than the less common words. For instance, the 100 most common English words make up more than 50% of text. If you’ve got limited time, you should learn those most common words first.

I did an analysis of lots of GitHub projects to find these top 100 expressions. I think the results show that learning the most common 100 expressions will have an outsized usefulness. If you’re interested in learning Clojure, you should begin with those. I’ve created flashcards in PDF form that you can print, and also a CSV version that you can import into Anki for spaced repetition.

Most Common Clojure Expression Flashcards with Grid (Avery 5371)

When I was learning Spanish, I liked to use Anki to drill new vocabulary. It’s a flashcard program. I found that someone had made a set of cards from an analysis of thousands of newspapers. They read in all of the words from the newspapers, counted them up, and figured out what the most common words were. The top 1000 made it into the deck.

It turns out that this is a very good strategy for learning words. Word frequency follows a hockey stick distribution. The most common words are used so much more than the less common words. For instance, the 100 most common English words make up more than 50% of text. If you’ve got limited time, you should learn those most common words first.

I did an analysis of lots of GitHub projects to find these top 100 expressions. I think the results show that learning the most common 100 expressions will have an outsized usefulness. If you’re interested in learning Clojure, you should begin with those. I’ve created flashcards in PDF form that you can print, and also a CSV version that you can import into Anki for spaced repetition.

Ring Spec to Hang on the Wall

If you program the web in Clojure, you probably use Ring. Even if you don’t, your server is likely Ring compatible.

Ring has a small SPEC. It’s centered around defining the keys one can expect in the request and response maps. And the exact names for keywords are easy to forget.

I don’t want to forget. I use Ring often enough that I want a quick reference. A while ago, I printed out a quick summary of the keys for the request and response maps and hung it on the wall behind my monitor. I refer to it frequently.

If you program the web in Clojure, you might appreciate this printout. If you’re learning, it could be an invaluable reference.

TDD in Emacs Clojure Reference Sheet

These are all of the commands Eric uses to do TDD in Cider.