aboutsummaryrefslogtreecommitdiff
path: root/macros.lisp
diff options
context:
space:
mode:
authorColin Okay <colin@cicadas.surf>2022-10-28 10:34:30 -0500
committerColin Okay <colin@cicadas.surf>2022-10-28 10:34:30 -0500
commitda82614663432d96e6e47b167de452bb7d7bb803 (patch)
treeeecb8d8d6163dc3f36ef523435005f026b208969 /macros.lisp
parente2b1c1312f011951ac5cdb133f05991cb3b8aed9 (diff)
Add: hofs and closure
Diffstat (limited to 'macros.lisp')
-rw-r--r--macros.lisp13
1 files changed, 8 insertions, 5 deletions
diff --git a/macros.lisp b/macros.lisp
index fa93bc5..8cf528f 100644
--- a/macros.lisp
+++ b/macros.lisp
@@ -23,8 +23,7 @@
(declare (ignore subchar infix))
(let ((form1 (read stream)))
(if (symbolp form1)
- (list '$ (list (concatenate 'string "$"
- (symbol-name form1)))
+ (list '$ (list (concatenate 'string "$" (symbol-name form1)))
(read stream))
(list '$ () form1))))))
@@ -110,7 +109,11 @@ surrounding form.
`(lambda ,new-params ,expr)))
-
-
-
+(defmacro closure (&body body)
+ "Creates a lambda that accepts any number of arguments, all of which
+ are ignored."
+ (let ((args (gensym)))
+ `(lambda (&rest ,args)
+ (declare (ignorable ,args))
+ ,@body)))