aboutsummaryrefslogtreecommitdiff
path: root/src/combinator.lisp
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-06-18 09:21:19 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-06-18 09:23:04 -0700
commit92f58e96e1edc9bc3944cb87d0ee5d3a94157824 (patch)
treedfb90964a44dc92711ebbc40237ad8e6127d7316 /src/combinator.lisp
parent5e304508e8708e7085c0dd5aad2f5f6f0ed5fc7b (diff)
downloadconsfigurator-92f58e96e1edc9bc3944cb87d0ee5d3a94157824.tar.gz
add PROPAPPARGS and some Postfix properties
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src/combinator.lisp')
-rw-r--r--src/combinator.lisp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/combinator.lisp b/src/combinator.lisp
index bcba1c3..636893e 100644
--- a/src/combinator.lisp
+++ b/src/combinator.lisp
@@ -21,6 +21,15 @@
;;;; Property combinators
(defmacro define-function-property-combinator (name args &body body)
+ "Define a function property combinator NAME with lambda list ARGS.
+
+Usage notes:
+
+- If you need to read individual arguments to propapps passed as arguments to
+ NAME, call PROPAPPARGS to access them. For passing a whole list of args on
+ to a property subroutine, just take the cdr of the propapp.
+
+ For an example showing both techniques at work, see POSTFIX:MAPPED-FILE."
(multiple-value-bind (forms declarations docstring)
(parse-body body :documentation t)
`(defun ,name ,args