What we cover:
- defining functions
- anonymous functions
- short hand anonymous functions
- complex reducing
- alternatives to the reduce example
- demonstrate how vectors and lists are different
- custom method that separates the specified predicate from a sequence
- destructuring with let bindings
- utilising
do
to create side effects - closures
- delays, futures, promises
- atoms for thread safety
- macros
- macro syntax quote
- refactoring (and unquote slicing)
- multimethods
- lazy evaluation
- data structures
- channels
- refs
- composition
- partial application