From 889a4d37b2d40426a1d87197ee8534dd51601d73 Mon Sep 17 00:00:00 2001 From: gilch Date: Mon, 28 Oct 2024 20:21:12 -0600 Subject: [PATCH] WIP Add var# tag TODO: document/doctest --- src/hissp/macros.lissp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/hissp/macros.lissp b/src/hissp/macros.lissp index f2061922..e19a2669 100644 --- a/src/hissp/macros.lissp +++ b/src/hissp/macros.lissp @@ -461,7 +461,7 @@ See `hissp.macros`. (let (form `(setattr (.get (globals) "_macro_") ',name (fun ,(.format "_macro_.{}" name) ,parameters ,@body))) - (if-else (operator..contains (.get hissp.compiler..ENV) '_macro_) + (if-else (operator..contains (.get hissp..*env*) '_macro_) form `(progn (.setdefault (globals) "_macro_" (types..SimpleNamespace)) ,form))))) @@ -2707,6 +2707,12 @@ See `hissp.macros`. `(lambda (: :* $#xs) (ft#reduce ,f $#xs))) +(defmacro var\# f + "makes function arguments reloadable" + `(ft#update_wrapper (lambda (: :* $#args :** $#kwargs) + (,f : :* $#args :** $#kwargs)) + ,f)) + ;;;; Collection (defmacro @ (: :* xs)