| author | Alan Dipert
<alan@tailrecursion.com> 2026-11-12 02:41:57 UTC |
| committer | Alan Dipert
<alan@tailrecursion.com> 2026-11-12 02:41:57 UTC |
| parent | 285dd9a731e6783d1e1ecddc4509b050d982bc2f |
| md/Lisp/MutableLocals.md | +1 | -1 |
diff --git a/md/Lisp/MutableLocals.md b/md/Lisp/MutableLocals.md index 17f088f..61ffe26 100644 --- a/md/Lisp/MutableLocals.md +++ b/md/Lisp/MutableLocals.md @@ -25,7 +25,7 @@ Clojure already updates [JVM local-variable slots](https://docs.oracle.com/javas [`recur`](https://clojure.org/reference/special_forms#recur) evaluates its arguments, rebinds the loop locals, and starts the loop body again. [Clojure's compiler](https://github.com/clojure/clojure/blob/clojure-1.12.6/src/jvm/clojure/lang/Compiler.java#L7156-L7227) emits local-variable stores and a jump. We can write assignments and jumps where we want them, then compile them into Clojure that does the updating through `recur`. -`loophole` does this for a subset of Clojure. It's a compiler inside a macro, with no atoms or changes to Clojure's compiler. Mutable locals to the people. +`loophole` does this for a subset of Clojure. It's a compiler inside a macro, with no atoms or changes to Clojure's compiler. Mutable locals to the people! ## Compiling to a state machine