From 7264a44509d6f5132dec98165f0d0c77ece7faed Mon Sep 17 00:00:00 2001 From: gilch Date: Sat, 23 Dec 2023 21:11:36 -0700 Subject: [PATCH] Fix/simplify alias --- src/hissp/macros.lissp | 48 +++++++++++++++++------------------------- 1 file changed, 19 insertions(+), 29 deletions(-) diff --git a/src/hissp/macros.lissp b/src/hissp/macros.lissp index bb64baf62..c81dad73e 100644 --- a/src/hissp/macros.lissp +++ b/src/hissp/macros.lissp @@ -823,32 +823,25 @@ Hidden doctest adds bundled macros for REPL-consistent behavior. ;; >>> # hissp.._macro_.alias ;; ... # hissp.macros.._macro_.defmacro ;; ... # hissp.macros.._macro_.let - ;; ... (lambda _Qz2D5FNHXZz_fn=(lambda _QzE4JATHEUz_first,*_QzE4JATHEUz_rest,**_QzE4JATHEUz_kwargs:( + ;; ... (lambda _Qz2D5FNHXZz_fn=(lambda _QzE4JATHEUz_attr,*_QzE4JATHEUz_args,**_QzE4JATHEUz_kwargs:( ;; ... 'Aliases ``hissp.._macro_`` as ``HQzCOLON_#``.', ;; ... # hissp.macros.._macro_.ifQz_else ;; ... (lambda b,c,a:c()if b else a())( - ;; ... _QzE4JATHEUz_rest, + ;; ... (lambda X,Y:X or Y)( + ;; ... _QzE4JATHEUz_args, + ;; ... _QzE4JATHEUz_kwargs), ;; ... (lambda : - ;; ... # hissp.macros.._macro_.let - ;; ... (lambda _QzE4JATHEUz_rest=__import__('builtins').list( - ;; ... _QzE4JATHEUz_rest): - ;; ... __import__('builtins').getattr( - ;; ... __import__('hissp')._macro_, - ;; ... ('{}{}').format( - ;; ... _QzE4JATHEUz_first, - ;; ... # hissp.macros.._macro_.ifQz_else - ;; ... (lambda b,c,a:c()if b else a())( - ;; ... 'hissp.._macro_'.endswith( - ;; ... '._macro_'), - ;; ... (lambda :'QzHASH_'), - ;; ... (lambda :('')))))( - ;; ... _QzE4JATHEUz_rest.pop(), - ;; ... *_QzE4JATHEUz_rest, - ;; ... **_QzE4JATHEUz_kwargs))()), + ;; ... __import__('builtins').getattr( + ;; ... __import__('hissp')._macro_, + ;; ... ('{}{}').format( + ;; ... _QzE4JATHEUz_attr, + ;; ... 'QzHASH_'))( + ;; ... *_QzE4JATHEUz_args, + ;; ... **_QzE4JATHEUz_kwargs)), ;; ... (lambda : ;; ... ('{}.{}').format( ;; ... 'hissp.._macro_', - ;; ... _QzE4JATHEUz_first))))[-1]):( + ;; ... _QzE4JATHEUz_attr))))[-1]):( ;; ... __import__('builtins').setattr( ;; ... _Qz2D5FNHXZz_fn, ;; ... '__doc__', @@ -893,17 +886,14 @@ Hidden doctest adds bundled macros for REPL-consistent behavior. ;; See also: `prelude`, `attach`. ;; `(defmacro ,(.format "{}{}" abbreviation '#) - ($#first : :* $#rest :** $#kwargs) + ($#attr : :* $#args :** $#kwargs) ',(.format "Aliases ``{}`` as ``{}#``." qualifier abbreviation) - (if-else $#rest - (let ($#rest (list $#rest)) - ((getattr ,qualifier (.format "{}{}" - $#first - (if-else (.endswith ',qualifier ','._macro_) - ','# - ""))) - (.pop $#rest) : :* $#rest :** $#kwargs)) - (.format "{}.{}" ',qualifier $#first)))) + (if-else (,'XY#.#"X or Y" $#args $#kwargs) + ((getattr ,qualifier ,(if-else (.endswith qualifier '._macro_) + `(.format "{}{}" ,'$#attr ','#) + '$#attr)) + : :* $#args :** $#kwargs) + (.format "{}.{}" ',qualifier $#attr)))) (alias i itertools.) (alias op operator.)