Clojure Programming/TJP Examples

->
However -> works on everything or expanded So one can also use macros and normal functions in ->, i.e. non-methods.

doto
NB: doto returns the object after modification, which is very convenient. Consider in the above example no variable binding is required to access the resultant object. Here you can see it is much more readable using doto than the alternative which would be to create a temporary binding with let.

"lambda"
Use fn, or even better there is a custom syntax to create an anonymous function:

Arguments in the body are determined by the presence of argument literals taking the form %, %n or %&. % is a synonym for %1, %n designates the nth arg (1-based), and %& designates a rest arg.

recur
See loop

remove
The opposite of filter