Contains code from the initial chapter. Code handles basic concepts like
- Principle of values
- Referential transparency
- Tail recursion .. loop/recur
- Mutual recursion ... trampoline
- High order functions
- Partial funtions
- Composition
- Laziness
- Atoms for synchronous uncordinated single state change
- Refs for coordinated state change with multiple objectd
- Defmulti defmethod for polymorhic dispatch
- Deftype and Defrecord for descriptions and actions
- Protocols for a named set of functions
- Persistent data structures
Rapid feedback cycles.
- REPL - basic use doc, find-doc, source, javadoc
- REPL - starting a nREPL server and client with lein repl or lein repl :start :host localhost :port xxxxx
- REPL - starting a headless nREPL server with lein repl :headless :host localhost :port xxxxx
- REPL - connecting to server with lein repl :connect localhost:xxxxx
- REPL - embedding REPL is server application with lein-ring plugin and :nrepl {:start? true}...
- REPL - code reload with org.clojure/tools.namespace and :reload
Web Services. Utilising coljure features e.g. expressivenes, immutable data structures, concurrency and re-use to easily create web services.
- Project structure with the compojure template: lein new compojure
- Ring for HTTP abstraction
- Compojure for routing
- example-project works through ring and compojure concepts
- ring-shortener summary project for CH3