From 64f037d91e0c9296dcaef9a0ff3eb33b19a2ed34 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 20 Feb 2017 00:05:38 -0800 Subject: Import Upstream version 3a5 --- srfi-1.scm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'srfi-1.scm') 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) -- cgit v1.2.3