A Scheme interpreter implemented in Clojure, featuring hygienic macros and a REPL.
Scheje is a Scheme interpreter implemented in Clojure, providing a full-featured Scheme environment with hygienic macros and lexical scoping. It allows developers to run and extend Scheme code within the Clojure ecosystem, bridging two Lisp-family languages.
Clojure developers interested in language implementation, Lisp enthusiasts exploring Scheme, and educators teaching programming language concepts.
Scheje offers a clean, minimal implementation of Scheme with proper macro hygiene and cross-platform support, making it an educational tool and a practical embedding for Clojure projects.
A little scheme implementation on top of Clojure
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses the KFFD algorithm to prevent symbol capture in macros, as demonstrated in examples with let and and, ensuring reliable macro expansion.
Runs on both JVM (Clojure) and Node.js (ClojureScript) with REPLs, offering flexibility and fast startup on Node.js compared to JVM.
Built on a small core following Lisp philosophy, allowing easy extension with define-syntax, as shown in implementing let and other forms.
Provides an online interactive REPL to try Scheje without installation, lowering the barrier for learning and testing.
The library is minimal and bootstrapped from a starting environment, missing many features found in full Scheme implementations, as hinted in the TODOS section.
Requires Clojure or ClojureScript to run, adding setup complexity with lein or npm for projects not already in this ecosystem.
Open issues and TODOS indicate ongoing development, which may affect stability for advanced use, and it's tailored for Clojure integration rather than standalone Scheme.