diff options
Diffstat (limited to 'srfi-1.scm')
-rw-r--r-- | srfi-1.scm | 17 |
1 files changed, 13 insertions, 4 deletions
@@ -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) |