Clojure programming language

Updated: Feb 19, 2020 by Pradeep Gowda.

Clojure is a Lisp that runs on the Java Virtual Machine (JVM).

Learning resourses



IDE and infrastructure


online playgrounds

Getting started with Lighttable


Basic instructions. I use cmd for the shortcuts below, substitute ctrl on non-mac platforms.

  1. Install Leiningen you do not need to install clojure, lein will grab clojure for you.
  2. lein new playground from the command line to create a ‘playground’ project
  3. Open Light Table
  4. ctrl-space woto for “Toggle Workspace tree”
  5. Add the playground project folder you just created
  6. cmd-o core.clj to open the main clojure file for the project
  7. On an empty line type (+ 1 1) and hit cmd-enter

Things will grind away for a while as all the dependencies are downloaded and the JVM starts up. Get a cup of coffee or something. Eventually you’ll see a green 2 show up.

You can then type anything in the tutorial and hit cmd-enter to evaluate it or cmd-shift-enter to evaluate the entire file. Think of the file as a shell with an editable history instead of something you’d want to commit to source control.

Documentation is searchable via ctrl-shift-d or moving your cursor on top of a function name and hitting ctrl-d. Autocomplete is available on tab, you can jump to definition with cmd-. and back with cmd-,

TODO: Explore CIDER + AC(autocomplete) + ritz.



Clojure books

The second chapter, Idioms, provides specific, syntactic advice for writing Clojure which is clean and readable.

The third chapter, Indirection, looks at how code can made simpler and more robust through separation.

The final chapter, Composition, explores how the constituent pieces of our code can be combined into an effective whole.

Clojurescript books

Experience reports and discussions


Talks and presentations

Tips and tricks

Cool projects / Read Code

Visualization / Notebook

Web development




Learning Journal

clojure -Sdeps '{:deps 
        {:git/url "" 
        :sha "1c9a05106171f97f9b8e8ac8f58c7bd8dbe021f9"}}}'
    -m hello-clojure        

See also: lisp, scheme.