combinators: Fix any-of and juxt
parent
e8f0c30402
commit
2602e1d3de
|
@ -18,11 +18,13 @@ element of LST satisfies PRED."
|
|||
(define (any-of pred)
|
||||
"Returns a procedure that takes a list LST and returns #t if any element of
|
||||
LST satisfies PRED."
|
||||
(match-lambda
|
||||
(() #f)
|
||||
((head . tail)
|
||||
(cond ((pred head) #t)
|
||||
(else (any? pred tail))))))
|
||||
(lambda (lst)
|
||||
(let loop ((lst lst))
|
||||
(match
|
||||
('() #f)
|
||||
((head . tail)
|
||||
(cond ((pred head) #t)
|
||||
(else (loop tail))))))))
|
||||
|
||||
(define (conjoin . predicates)
|
||||
"Returns a procedure that is the conjuction of every predicate in PREDICATES.
|
||||
|
@ -77,5 +79,6 @@ of aditional arguments."
|
|||
"Returns a procedure that is the juxtaposition of it's argument procedures.
|
||||
The returned procedure takes a variable number of args, and returns a list
|
||||
containing the result of applying each procedure to the args (left-to-right)."
|
||||
(map (partial (flip apply) args)
|
||||
(cons proc more-procs)))
|
||||
(lambda args
|
||||
(map (partial (flip apply) args)
|
||||
(cons proc more-procs))))
|
||||
|
|
Loading…
Reference in New Issue