Clojure Programming

Clojure / FP Advocacy

Functional Thinking (video)

http://www.braveclojure.com/

Rich Hickey: Simple Made Easy

Why I'm Productive in Clojure

YOU USE PHP BECAUSE YOU DON'T KNOW BETTER

Clojure data uniformity -- an explanation of benefits of direct data access compared to object-oriented approach

Functional Programming

Functional Thinking (video)

John Pither: Functional Programming for the Enterprise

Why to edit programs while they are running

Main FP Principles

http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey

Resources

Books

, ,

Lisp Books made into Clojure

Quick Guides

Tutorial for “children”: Comics Casting spells with Lisp

Clojure Style Guide

A side-by-side reference sheet (Lisp: Common Lisp, Scheme, Clojure, Emacs Lisp)

Flowchart for choosing the right Clojure type definition form

Clojure macros for beginners

Domain-Driven Design with Clojure -- video about Clojure programmes design

Learning

Brief Beginner's Guide to Clojure

Getting Started with Clojure - Part 1

http://www.4clojure.com

Beautiful Clojure concepts visualisation

Clojure Cookbook

Specific / Advanced Topics

On sequences and immutability

Libs and namespaces

Destructuring

IO as Data

Growing a DSL

Data, Visibility, Abstraction

Concurrency is not parallelism (Go); Clojure's take: core.async

Clojure concurrency tutorial

Dire: decomplecting error behaviour

Web Development

Ultimate overview

Pedestal Framework, Pedestal Beginner's Guide, Small example

Online HTML->Hiccup converter

Conjure: web framework a-la Django or Rails

Luminus - a curated set of libraries

Noir Framework - deprecated, see Moving away from Noir

todo webapp with core.async

Ganelon -- microframework for instant Ajax development

DSL for Web applications -- a very promising idea!!! --- Robert Pergl 2013/09/10 21:43

ClojureScript

Book ClojureScript Up and Running

ClojureScript tutorials

ClojureScript compiler as a web service

The ClojureScript browser-REPL

A sampler of ClojureScript application designs

Mixed resources

Various videos

Tools and IDEs

You definitely need Leiningen for easy project management. There is a multitude of IDE's available, however none is absolutely perfect, yet...

Counterclockwise plugin for Eclipse

IntelliJ Idea has a plugin La Clojure directly in its repository.

Clooj is elegant and very lightweight with limited capabilities

LightTable's Instarepl is just awesome for playing around! See here for an inspiration

vim-fireplace here and here recommended together with Redl plugin and vim-sexp

Other tools at http://dev.clojure.org/display/doc/Clojure+Tools.

Leiningen plugins

lein-ancient -- to check availability of newer versions of used libraries

lein-kibit -- Clojure style checker

http://hugoduncan.org/post/alembic_reloads_your_project_clj_dependencies

Tips and Tricks

Clojure workflow

For Clojure DEBUGGING use Timbre for logging and Spyscope for forms spying. An alternative is also clojure.trace

Survey of Clojure testing

Useful Libraries

spreadmap: Library for reading Excel files

Timbre: logging and profiling library

Midje: gracious testing library

Instaparse: library for parsing

Interesting Solutions

Forum

Dots game

Autocompleter in ClojureScript

Screen scraping

Technical Topics

Performance analysis of JVM-Hosted Languages