Clojure Study Notes
Everything on SkillVeris tagged Clojure Study Notes — collected across the glossary, study notes, blog, and cheat sheets.
30 resources across 1 library
Study Notes(30)
Agents in Clojure
Agents manage a single piece of state that's updated asynchronously and independently by a queue of action functions, with built-in error handling.
Atoms in Clojure
Atoms provide Clojure's simplest managed reference type for safe, synchronous, uncoordinated mutable state backed by lock-free compare-and-swap updates.
Building a Web App with Ring
How to build a Clojure web application on Ring: the handler/middleware contract, request and response maps, routing with Reitit or Compojure, and running a Jet…
Clojure and Java Interop
Understand how Clojure calls Java classes and methods directly via dot notation, implements interfaces with proxy/reify/gen-class, and handles exceptions and t…
Clojure Best Practices
A practical guide to writing idiomatic Clojure: function and namespace design, choosing the right state primitive, structured error handling, and readable thre…
Clojure Interview Questions
What Clojure interviews actually probe — core language fundamentals, concurrency reasoning, common live-coding patterns, and tooling/JVM interop knowledge — wi…
Clojure Quick Reference
A scannable cheat sheet of core Clojure syntax, everyday sequence and map functions, the four state/concurrency primitives, and the project tooling and REPL co…
Clojure Syntax Basics
A tour of Clojure's core syntax: s-expressions, literal data types, the four collection types, and how to define values and functions.
Clojure vs Common Lisp
A practical comparison of Clojure and Common Lisp covering data structures, the JVM host, macros, object systems, and concurrency, for programmers deciding bet…
ClojureScript Basics
Get started with ClojureScript — how it compiles to JavaScript, how to set up and hot-reload a project with shadow-cljs, and how JS interop and platform differ…
Concurrency Primitives Compared
A side-by-side comparison of atoms, refs, agents, and core.async channels to help you choose the right Clojure concurrency primitive for each situation.
core.async Basics
core.async brings Go-style CSP concurrency to Clojure through channels and lightweight go blocks, decoupling producers and consumers.
Destructuring in Clojure
Learn how Clojure's destructuring syntax lets you pull values out of vectors and maps directly in let bindings and function parameters, making data-heavy code…
Functions in Clojure
Learn how to define, call, and compose functions in Clojure, from simple defn forms to anonymous functions, multi-arity definitions, and higher-order functions.
Higher-Order Functions in Clojure
Learn how Clojure treats functions as first-class values, letting you pass them as arguments, return them from other functions, and compose new behavior with c…
Immutable Data Structures
Explore Clojure's core persistent data structures — vectors, lists, maps, and sets — and understand how immutability and structural sharing make them both safe…
Installing Clojure and Leiningen
A step-by-step guide to setting up a working Clojure development environment, including the JDK, the Clojure CLI tools, and Leiningen.
Lazy Sequences
Understand how Clojure's lazy sequences defer computation until it's needed, enabling infinite sequences, and learn the chunking and memory pitfalls that trip…
Leiningen and deps.edn
Compare Clojure's two main build tools — Leiningen's project.clj and the official tools.deps CLI's deps.edn — and learn how each manages dependencies, profiles…
map, filter, reduce in Clojure
Master the three foundational sequence-processing functions that let you transform, select, and accumulate data declaratively instead of writing explicit loops.
Multimethods and Protocols
Explore Clojure's two mechanisms for open, extensible polymorphism — arbitrary-dispatch multimethods and fast, type-based protocols — and learn when to use eac…
Namespaces and require
Learn how Clojure organizes code into namespaces and how ns, require, import, and refer control how symbols are loaded and referenced across files.
Recursion and loop/recur
Learn how Clojure handles recursion without mutable loop variables, and how the recur special form enables safe, stack-efficient tail recursion via loop and fu…
Refs and Software Transactional Memory
Refs and Clojure's software transactional memory (STM) let you update multiple pieces of state together, atomically and consistently, using dosync transactions.
Showing 24 of 30.