Clojure resources


#1

Because much of the work in our group uses the Clojure programming language, I thought it would be useful to post a general list of Clojure resources here, aimed primarily at beginners.

There are many more!

But the intention here is to present a reasonably concise curated list.

Please comment below with suggestions for additions/changes/etc.

Clojure resources

  • Editing and running code: Many Clojure editing and development environments are available. The workflow that I use myself, and that I recommend to others unless they have reasons to prefer something else, is to use Leiningen from the command line to create and run projects, and to use Gorilla REPL to edit and experiment with code. The Gorilla REPL site has videos that will give you a sense of how it works, and a section called “Secrets,” with content provided by me, that I think will also help to get you going.

  • Clojure.org, the main site for the Clojure language; note especially their Clojure resources page

  • Clojure cheatsheet

  • Clojure style guide

  • Clojure TV

  • Two blog posts on dealing with Clojure error messages (stack traces): 1 and 2

  • Lee’s tutorial materials:

    • Clojestions, suggested exercises for learning Clojure

    • Clojinc, a saved REPL session intended to support semi-independent learning of Clojure

  • Other tutorial materials:

  • A good free textbook: Clojure for the Brave and True by Daniel Higginbotham. No Starch Press, 2015. ISBN-10: 1593275919, ISBN-13: 978-1593275914. Available free online

  • Lee’s Clojure GP code:

    • Propel, a relatively simple, easy-to-understand but nonetheless fully functional PushGP implementation (a fork of @thelmuth’s project)

    • Clojush, my group’s main research PushGP system, with a zillion features but also a lot of complexity

    • gp, simple Clojure code for traditional, “tree-based” genetic programming (not Push), which is also explained in this talk

  • Clojure MXNet, for the Apache MXNet deep learning framework

  • Simple Clojure neural network code by Hampshire student Julian Oks

  • A few of Lee’s other Clojure projects of possible interest:

    • Rock Paper Stuff, a game designed for artificial intelligence experiments and education

    • Pucks, an environment for experiments and education in artificial intelligence and artificial life

  • Quil, a Clojure/ClojureScript library for creating interactive drawings and animations