
Master Clojure syntax by creating a hello world program, defining and calling functions, and using sdr to concatenate strings; explore function calls for numbers and operators as first-class functions.
Learn how to define variables in Clojure using def, create numeric, string, and boolean variables, print their values, and see automatic type inference in expressions.
Define functions with def, pass a name parameter, and call to output hello plus the name, while exploring multiple statements, sums, and multiplications.
Define and print lists in Clojure using def and print line, add elements to the front, count elements, and access items by zero-based index.
Define namespaces to organize code into groups and libraries, using dot notation to access functions like core/print line within a namespace. Import Java namespaces and run on Java Virtual Machine.
Explain how an if statement executes its expression only when the predicate is true, use do to group multiple expressions, and understand else or when as alternatives.
Explore the Clojure when construct and how it differs from if statements. It executes only when the predicate is true, has no else branch, and prints lines accordingly.
Explore how case expressions in Clojure evaluate the input value X and choose the matching branch to produce outputs.
Discover how vectors behave like lists in Clojure, including creating, indexing with first and last, appending with conjoined, and using index of for items and strings.
Explore Clojure sets, a collection of unique values with no enforced order. Create and conjoin values, handle duplicates with exceptions, sort for display, and check containment with contains? in conditionals.
Explore how sequences in Clojure provide a unified interface over lists, vectors, sets, and queues, with operations like drop, conj, first, last, reverse, sort, and take.
Explore removing items from a clojure sequence with remove and predicates, including equal to values and even numbers, and redefining sequences.
Create maps as key-value pairs and build a countries map to retrieve values by key, list keys and values, merge maps, and add or override entries.
Explore how macros act as a metal language to extend code syntax, compare them to functions, and learn why macros are powerful yet tricky and often avoided in production.
Explore how to use loop and recur to repeat code with immutable variables, counting from 1 to max, avoiding memory crashes from simple recursion.
Explore how the doseq macro enables iteration by repeating a body for each element in a sequence. Use it to print numbers and square list elements.
Explore dotimes, a fixed-count iteration in Clojure, repeating a body from 0 to max-1. Contrast with do times, which repeats a body a set number of times without indexing lists.
Learn how atoms serve as mutable state containers in Clojure, pointing to any value and updated via swap and reset to change state, unlike immutable variables.
Explore how map, filter, remove, and apply operate on immutable collections in Clojure, using anonymous predicates to transform, select, or summarize a numeric collection.
Explore how Clojure's delay defers expression evaluation and how forcing triggers evaluation, illustrating delayed computation and its use in functional programming.
Learn how to program with Clojure, a functional programming language.
Clojure is different from other languages in that it is a functional programming language. This requires you to think in a different way and the learning curve can be steep. This course will give you an easy introduction to functional programming with Clojure. We'll go over the basics and you'll be able to make programs with Clojure.
This is a getting started course. It helps you start at the beginner level.