Clojure is a Lisp that runs on the Java Virtual Machine (JVM).
- Maria a coding environment for beginners.
- nerdy + lanky | The Practice of Clojure Advice for beginners. – ” I highly recommend using a structural editing mode like Parinfer. I avoided code insertion / code completion tools in Ruby, but structural editing is a massive productivity boost in Lisps.”
- JUXT Radar for Clojure
- Getting started with Clojure
- Clojure Docs is a community-powered documentation and examples repository. Very neat looking website. Navigate namespaces and functions to see description and typical usage.
- (another) Clojure Docs – this website is more about tutorials, articles and cookbooks.
- Guide to programming in Clojure for beginners
- Aphyr’s Clojure from the ground up
- 10 minute emacs for clojure guide.
- Clojure for the Brave and True, an Online Book for Beginners – very nice tutorial on emacs.
- Clojure links by Lee Phillips
- Learning Clojure: coping with dynamic typing Sept 2018.
- Clojure Design Patterns
- Clojure Concurrency Tutorial for Beginners with Code Examples by Eric Normand, “In this tutorial, you’ll learn 16 ways for doing concurrency in Clojure including how to start threads and how to communicate between them.”
- Lambda Island | Screencast series about ClojureScript and Clojure
- Poetry of Programming - Puzzle Based Introduction to Functional Programming | popbook. The Reading exercise (PDF) are great.
- The Simplicity of Clojure at OSCON 2014.
- ClojureTV Youtube Channel
- Philly ETE 2016 #2 – Dmitri Sotnikov – Transforming Enterprise Development with Clojure – Chariot Solutions a good demo of lumius framework with a “guestbook app” example (both clj and cljs.)
- The spirit of Clojure by Karsten Schmidt about thi-ng
IDE and infrastructure
- Lightmod – Lightmod is a tightly integrated tool for making full stack Clojure and ClojureScript web apps. It is fully self-contained – no need to install the JDK or any build tool. It hot reloads both client and server code automatically with zero setup.
Nightlight is an editor you run inside your Clojure projects. Instead of being a separate application like traditional editors and IDEs, it’s just a library that you add to your project. It spins up a web server and provides a completely browser-based interface to edit your code.
CIDER is the successor to nrepl.
- Cursive Clojure IDE – is an IDE built on IntelliJ
Getting started with Lighttable
Basic instructions. I use cmd for the shortcuts below, substitute ctrl on non-mac platforms.
- Install Leiningen http://leiningen.org/ you do not need to install clojure, lein will grab clojure for you.
- lein new playground from the command line to create a ‘playground’ project
- Open Light Table
- ctrl-space woto for “Toggle Workspace tree”
- Add the playground project folder you just created
- cmd-o core.clj to open the main clojure file for the project
- 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 libraries I recommend - quanttype Oct 2018.
- Javelin – Spreadsheet-like dataflow programming in ClojureScript.
- Ring inspired by Python WSGI. Primer
- Clojure toolbox – categorised directory of libraries and tools for Clojure.
- Quil: animation in Clojure
- https://polylith.gitbook.io/polylith/ is a software architecture that applies functional thinking at the system scale. It helps us to build simple, maintainable, testable, and scalable systems.
- Learn to Program the World’s Most Bodacious Language with Clojure for the Brave and True
- Programming Clojure, 3rd Edition by Aaron Bedra, Stuart Halloway, Alex Miller
- Practical Clojure by Luke VanderHart, Stuart Sierra
- Living Clojure
- Clojure from the ground up: welcome
- Clojure in Action, Second Edition by Amit Rathore et al
- Clojure Applied by Alex Miller et al
- Clojure Web Development Essentials by Ryan Baldwin
- Mastering Clojure Macros by Colin Jones
- Clojure Data Analysis Cookbook - Second Edition by Eric Rochester
- Clojure High Performance Programming - Second Edition
- Clojure Reactive Programming by Leonardo Borges
The Joy of Clojure by Michael Fogus and Chris Houser
Elements of Clojure WIP as of Oct 2018.
The first chapter, Names, explains why names define the structure of our software, and how to judge whether a name is any good.
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: Up and Running by Luke VanderHart, Stuart Sierra
- Learning ClojureScript by Allen Rohner, Rafik Naccache, W. David Jarvis
Experience reports and discussions
- Fourteen Months with Clojure – Skyliner; HN.
- Readable Clojure @ tonsky.me
Effective Programs - 10 years of Clojure by Rich Hickey
- “situated programs” (10:30 mark)
- “effective” (around 17:00)
- Using Clojure in Production | Demystify FP Sept 2018.
A Year in Clojure – this article has a nice overview of the many novel features of Clojure. The author is an experienced FP language user (F# etc.,); Oct 2017.
Clojure Design Decisions “Rich Already Answered That! A list of commonly asked questions, design decisions, reasons why Clojure is the way it is as they were answered directly by Rich (Hickey)”.
Matthias Nehlsen has good blog posts on clojure+clojurescript applications he has created. He is also writing a book - Building a System in Clojure (and ClojureScript) by Matthias Nehlsen
Talks and presentations
- CLojure at netflix – good projects to start – “Diagnostic services”.
Tips and tricks
- Readable Clojure @ tonsky.me
- Should I use boot or tools.deps to build command line applications? ClojureVerse ..and this ..via. Seee also frobnicate
Cool projects / Read Code
- thi.ng - computational design tools for Clojure & Clojurescript
- thegeez/clj-board: A drag & drop “kanban board” example with Clojure
- Inspect Example
- matthiasn/meins: a personal and smart journal
- Systems-Toolbox: Trailing Mouse Pointer Example
Visualization / Notebook
- Gorilla REPL · Gorilla REPL
- metasoarous/oz: Data visualizations in Clojure and ClojureScript using Vega and Vega-lite
- dundalek/clojurescript-guide: My notes on ClojureScript
- magomimmo/modern-cljs: A series of tutorials on ClojureScript is one of the clearest tutorials I’ve read.
- ClojureScript – Homepage
- Austin – browser REPL.
- ClojureScript Unraveled a book.
- Plank – ClojureScript REPL for Mac
- Transforming Data with ClojureScript
See also: lisp, scheme.