aboutsummaryrefslogtreecommitdiffstats
path: root/csc/list.csc
diff options
context:
space:
mode:
Diffstat (limited to 'csc/list.csc')
-rw-r--r--csc/list.csc10
1 files changed, 7 insertions, 3 deletions
diff --git a/csc/list.csc b/csc/list.csc
index cc64168..b1c2298 100644
--- a/csc/list.csc
+++ b/csc/list.csc
@@ -74,8 +74,12 @@
finally (return (values xs ys))))
- (define (all pred l)
- (loop for x in l
- unless (pred x)
+ (define (all pred . ls)
+ (loop for ls = ls then (map cdr ls)
+ while (loop for l in ls
+ if (null? l)
+ return #f
+ finally (return #t))
+ unless (apply pred (map car ls))
return #f
finally (return #t)))))