From 305868fd8865cd971c8fc662e6caf7745ada6da0 Mon Sep 17 00:00:00 2001 From: Yogthos Date: Thu, 4 Jun 2026 18:02:55 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20named=20fn*=20=E2=80=94=20(fn*=20name?= =?UTF-8?q?=20[args]=20...)=20binds=20name=20to=20self=20for=20recursion?= =?UTF-8?q?=20(unblocks=20named-recur;=20jank=20conformance=20110->119)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jolt/evaluator.janet | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/jolt/evaluator.janet b/src/jolt/evaluator.janet index 058c1dd..439b9fc 100644 --- a/src/jolt/evaluator.janet +++ b/src/jolt/evaluator.janet @@ -745,6 +745,7 @@ (when rest-pat (destructure-bind ctx fn-bindings rest-pat (tuple/slice fn-args i))) (put fn-bindings :jolt/loop-fn self) + (when fn-name (bind-put fn-bindings fn-name self)) # Use defining namespace for symbol resolution (def saved-ns (ctx-current-ns ctx)) (ctx-set-current-ns ctx defining-ns) @@ -753,7 +754,7 @@ (set result (eval-form ctx fn-bindings body-form))) (ctx-set-current-ns ctx saved-ns) result)) - self)) + self))) "let*" (let [bind-vec (in form 1) body (tuple/slice form 2)] (var new-bindings @{})