aboutsummaryrefslogtreecommitdiffstats
path: root/srfi-1.scm
diff options
context:
space:
mode:
Diffstat (limited to 'srfi-1.scm')
-rw-r--r--srfi-1.scm17
1 files changed, 13 insertions, 4 deletions
diff --git a/srfi-1.scm b/srfi-1.scm
index 676cc90..98294b0 100644
--- a/srfi-1.scm
+++ b/srfi-1.scm
@@ -253,8 +253,17 @@
(f l (pair-fold-right f z (cdr l)))))
;;@body
-(define (reduce f ridentity list)
- (if (null? list) ridentity (fold f (car list) (cdr list))))
+(define reduce
+ (let ((comlist-reduce reduce))
+ (lambda args
+ (apply (if (= 2 (length args))
+ comlist-reduce
+ (lambda (f ridentity list)
+ (if (null? list)
+ ridentity
+ (fold f (car list) (cdr list)))))
+ args))))
+
(define (reduce-right f ridentity list)
(if (null? list)
ridentity
@@ -333,11 +342,11 @@
;;@args pred list
(define remove
- (let ((comlist:remove remove))
+ (let ((comlist-remove remove))
(lambda (pred l)
(if (procedure? pred)
(filter (lambda (x) (not (pred x))) l)
- (comlist:remove pred l))))) ; 'remove' has incompatible semantics in comlist of SLIB!
+ (comlist-remove pred l))))) ; 'remove' has incompatible semantics in comlist of SLIB!
;;@args pred list
(define (partition! p? l)