git.fiddlerwoaroof.com
Browse code

feat: actually add CONJ and DISJ

Edward Langley authored on 28/09/2022 06:14:14
Showing 1 changed files
... ...
@@ -111,6 +111,21 @@
111 111
         (funcall fun it)
112 112
         it)))
113 113
 
114
+(defmacro conj (&rest fns)
115
+  (let ((dat (gensym "dat")))
116
+    `(lambda (,dat)
117
+       (and ,@(mapcar (lambda (fn)
118
+                        `(funcall ,fn ,dat))
119
+                      fns)))))
120
+
121
+(defmacro disj (&rest fns)
122
+  (let ((dat (gensym "dat")))
123
+    `(lambda (,dat)
124
+       (or ,@(mapcar (lambda (fn)
125
+                       `(funcall ,fn ,dat))
126
+                     fns)))))
127
+
128
+
114 129
 (defun-ct sorted (comparator &rest r &key key)
115 130
   (declare (ignore key))
116 131
   (lambda (it)