Browse code
feat: actually add CONJ and DISJ
Edward Langley authored on 28/09/2022 06:14:14
Showing 1 changed files
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) |