aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2022-05-13 11:56:05 -0700
committerSean Whitton <spwhitton@spwhitton.name>2022-05-14 15:06:52 -0700
commit6b21f4de103f426645322d541c7a205616163b5c (patch)
tree94c5f439108dfb7d3cfb7e4d7d1b177f69d3048c
parent59a38f59c8f877a3145a75fdb3756506881255d7 (diff)
downloadconsfigurator-6b21f4de103f426645322d541c7a205616163b5c.tar.gz
WITH-UNAPPLY: use LDIFF
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
-rw-r--r--src/combinator.lisp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/combinator.lisp b/src/combinator.lisp
index b6d9811..da0594a 100644
--- a/src/combinator.lisp
+++ b/src/combinator.lisp
@@ -347,9 +347,8 @@ applies the elements of PROPAPPS appearing after :UNAPPLY.
Analogously to how DEFPROPLIST/DEFPROPSPEC allow you to define a property
which works by calling other properties, this combinator allows you to define
an :UNAPPLY subroutine for a property which works by calling other properties."
- (let* ((apply (loop for propapp in propapps
- until (eql propapp :unapply) collect propapp))
- (unapply (member :unapply propapps))
+ (let* ((unapply (member :unapply propapps))
+ (apply (ldiff propapps unapply))
(apply-propapp
(if (cdr apply) (apply #'eseqprops apply) (car apply)))
(unapply-propapp (if (cddr unapply)