Description
In this course, you will :
- This course introduces Clojure from the ground up, with only a Java or C# programming background assumed.
- Clojure is a Java Virtual Machine functional programming language.
Syllabus :
1. Overview and the REPL
- Clojure Objectives
- Why Another Lisp?
- Why ClojureScript?
- Clojure and ClojureScript
- Demo: Evaluation and the REPL
- Traditional Evaluation
- Clojure Evaluation
- Operation Forms
- Structure vs. Semantics
- Literals
- Data Structures
- Metadata
- Reader Macros
- Demo: REPL Utilities
- Leiningen Directory Structure
- Maven Directory Structure
2. Functions
- Functions
- Invoking Functions
- Naming Functions
- Demo: Defining and Naming Functions
- let
- Demo: let
- Multiple Arity
- Demo: Multiple Arity
- Variadic Functions
- apply
- Demo: Variadic Functions and apply
- Closures2mInvoking Java Code
- Chaining Access
- Java Methods vs. Functions
- Terse fn Reader Macro
3. Namespaces
- Why Namespaces?
- What's in a Namespace?
- Namespace-Qualified Vars
- Namespace-Qualified Keywords
- Namespaces in the REPL
- Namespace Operations
- require
- Demo: require
- use
- Demo: use
- Reloading Namespaces
- import
- Namespaces and Files
- ns Declaration
- ns :require
- ns :use
- ns :import
- ns Complete Example
- Demo: ns macro
- Private Vars
- the-ns
- Namespace Introspection
4. Collections
- Working With Data
- Immutability
- Persistent Data Structures
- Clojure Collections
- Lists
- Vectors
- Demo: Lists and Vectors
- Maps
- Nested Map Access
- Demo: Maps6mSets
5. Destructuring
- Destructuring
- Sequential Destructuring
- Sequential Destructuring with &
- Ignoring Destructured Values with
- Demo: Sequential Destructuring
- Associative Destructuring
- Associative Destructuring with :keys
- Using :or for Default Values
- Named Arguments
- Demo: Associative Destructuring
6. Sequences
- Sequences
- Sequence API
- Demo: Sequence API
- Sequences Over Structures
- Sequences Over Functions
- Sequences in the REPL
- Sequence Library
- Creating a Sequence
- Seq In, Seq Out
- Using a Seq
- Demo: Working with Sequences
- Adopting the Sequence Mindset
7. Flow Control
- Statements vs. Expressions
- Flow Control Expressions
- Truthiness
- if1mif/do1mif-let
- Demo: if-let
- cond
- condp
- case
- Demo: cond/condp/case
- Recursion and Iteration
- doseq
- dotimes
- while
- for
- loop
- defn/recur
- recur for Recursion
- Demo: recur
- Exception Handling
- Throwing Exceptions
- with-open