For a curriculum for learning Clojure, the strongest matches are functional-koans/clojure-koans (functional-koans/clojure-koans is a set of interactive exercises that teach), kanaka/mal (Mal is a hands-on guide to building a Lisp) and hylang/hy (Hy is a Lisp dialect for Python with a). clojure/clojurescript and technomancy/leiningen round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Explore open-source projects, interactive tutorials, and functional programming libraries for mastering Clojure and Lisp.
Clojure Koans is an educational platform designed to teach the syntax and core concepts of the Clojure programming language. It provides a structured curriculum of programming challenges that guide users through language features by requiring them to resolve a sequence of failing test cases. The project functions as an interactive learning environment that integrates a test-driven development workflow with automated feedback. By monitoring source files for modifications, the tool triggers immediate test execution whenever a user saves their progress, allowing for real-time verification of cod
functional-koans/clojure-koans is a set of interactive exercises that teach Clojure through hands-on coding challenges, directly supporting REPL-driven learning and functional programming fundamentals, though it offers less explicit coverage of macros and comprehensive documentation than some may expect.
This project is a Lisp interpreter implementation guide and framework designed to teach the core principles of programming language design. It provides a structured, step-by-step technical framework for building a functional Lisp language from scratch, featuring a specialized interpreter engine and an S-expression parser that converts syntax into abstract syntax trees. The project emphasizes a code-as-data metaprogramming framework, enabling the implementation of macros, quoting, and quasiquoting to transform expressions during evaluation. It is designed with host language agnosticism, allowi
Mal is a hands-on guide to building a Lisp interpreter that teaches macros and REPL design, but it focuses on language implementation rather than Clojure-specific programming, functional paradigms, or project tutorials; it’s a complementary deep dive, not a direct Clojure learning resource.
Hy is a Lisp implementation for Python that allows for writing Lisp syntax which compiles to Python bytecode. It operates as a Python-based Lisp dialect and S-expression language, providing full access to the Python standard library and ecosystem. The language focuses on macro-based metaprogramming, featuring an AST-walking macro system and reader macros that allow for custom syntax transformations and parsing rules. It enables the manipulation of the abstract syntax tree to extend language capabilities. The project includes a read-eval-print loop for interactive development and supports sta
Hy is a Lisp dialect for Python with a REPL and macro support, but it is not Clojure and is a language implementation rather than a learning resource or tutorial, so it doesn't directly address the need for Clojure-specific learning materials.
ClojureScript is a Lisp-based compiler and runtime that translates Clojure source code into JavaScript. It enables functional programming across different JavaScript engines and platforms, allowing developers to build user interfaces and applications for web browsers and server environments. The project provides a read-eval-print loop for executing code live within a browser or server for immediate feedback. This facilitates an interactive development workflow where code can be written and tested in real time without restarting the application. The system covers a broad capability surface, i
This repository is the ClojureScript compiler and runtime, not a learning resource; while it includes a REPL useful for interactive coding, it lacks the tutorials, macro explanations, and guided examples this search asks for.
Leiningen is a build tool, dependency manager, and project automator for Clojure. It provides a command-line interface for bootstrapping new project structures, managing external libraries, and launching interactive read-eval-print loops for live development. The tool allows for the extension of build commands through a plugin system and manages project settings using a configuration map that can be layered with global user preferences and specific profiles. Its capabilities cover the full project lifecycle, including automated test execution, the creation of standalone executable archives,
Leiningen is a build tool and project automator for Clojure, not a learning resource or tutorial—though it supports REPL-driven development, it does not itself teach macros, functional programming, or provide educational examples.
Clojure is a general-purpose, functional programming language hosted on the Java Virtual Machine. It is a homoiconic S-expression language that represents programs as nested data structures, allowing code to be manipulated and evaluated as data. The project provides a framework for JVM interoperability, enabling the invocation of Java methods and integration with other JVM-based languages. It distinguishes itself through a persistent data structure library that uses bitmapped vector tries to manage immutable collections and a programmatic REPL for interactive software development and real-tim
This is the Clojure language implementation itself, not a set of learning materials or tutorials — while it includes a REPL and documentation, the visitor is looking for instructional resources rather than the language project.
Carp is a statically typed Lisp compiler that compiles Lisp-like syntax directly to C source code, enabling seamless integration with existing C libraries and low-level system programming. It manages memory deterministically at compile time using ownership tracking and linear types, eliminating garbage collection pauses and runtime overhead while ensuring type safety through an inferred static type system. The language distinguishes itself through compile-time macro expansion and metaprogramming capabilities, allowing code generation and transformation before final binary output. It enforces
Carp is a Lisp compiler and language, not a collection of tutorials or learning resources—while it shares lisp-family and REPL traits, it is a separate typed dialect rather than Clojure-focused material.