diff options
| author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-02-15 15:04:00 +0000 | 
|---|---|---|
| committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-02-15 15:04:00 +0000 | 
| commit | 395cd9357e2dbcf3bb0ffcaa45c79492ed4c3317 (patch) | |
| tree | da64b99369ea63d2d9c21758955aaf73ae837323 | |
| parent | be618327379eddb19a98edbcd3c37057f2fabeb9 (diff) | |
| download | cantedraw-395cd9357e2dbcf3bb0ffcaa45c79492ed4c3317.tar.gz cantedraw-395cd9357e2dbcf3bb0ffcaa45c79492ed4c3317.tar.bz2 cantedraw-395cd9357e2dbcf3bb0ffcaa45c79492ed4c3317.zip  | |
Rework `$` operator to take a capture variable
In case operators require use of a variable, we should let the caller
provide the symbol so we don't fall into weird package issues.
| -rw-r--r-- | lib/macros.lisp | 6 | ||||
| -rw-r--r-- | src/model.lisp | 2 | 
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/macros.lisp b/lib/macros.lisp index d182ce0..cb11901 100644 --- a/lib/macros.lisp +++ b/lib/macros.lisp @@ -80,11 +80,11 @@ arguments `LAMBDA-LIST' with body `BODY'."       (defun ,name ,lambda-list         ,@body))) -(defmacro $ (&rest forms) +(defmacro $ (capture &rest forms)    "Given a sequence of FORMS, return a unary function which applies each form  sequentially" -  `(lambda (x) -     (->> x ,@forms))) +  `(lambda (,capture) +     (->> ,capture ,@forms)))  (defmacro alist-val (key alist)    "Helper macro for getting the value of KEY in ALIST." diff --git a/src/model.lisp b/src/model.lisp index ff9b7ad..7cb1792 100644 --- a/src/model.lisp +++ b/src/model.lisp @@ -133,5 +133,5 @@     (loop :for _ :from 1 :to n           :nconc (loop :for j :from 1 :to 52                        collect (int->card (1- j)))) -   (mapcar ($ int->rank make-joker) +   (mapcar ($ x int->rank make-joker)        (range 0 (* 2 n)))))  | 
