File tree Expand file tree Collapse file tree 1 file changed +43
-8
lines changed Expand file tree Collapse file tree 1 file changed +43
-8
lines changed Original file line number Diff line number Diff line change 8282
8383(export length
8484 reverse
85- append
86- map1)
85+ append)
8786
8887(define (non-list-error name x)
8988 (raise-argument-error name "list?" x))
119118 [else (non-list-error 'append (car xss))]))]))
120119
121120(define (map1 f xs)
122- (if (null? xs)
123- '()
124- (let loop ([xs xs] [ys '()])
125- (if (null? xs)
126- (reverse ys)
127- (loop (cdr xs) (cons (f (car xs)) ys))))))
121+ (cond
122+ [(null? xs) '()]
123+ [(null? (cdr xs)) (list (f (car xs)))]
124+ [else
125+ (let loop ([xs xs] [ys '()])
126+ (if (null? xs)
127+ (reverse ys)
128+ (loop (cdr xs) (cons (f (car xs)) ys))))]))
129+
130+ (define (foreach1 f xs)
131+ (cond
132+ [(null? xs) (void)]
133+ [(null? (cdr xs))
134+ (f (car xs))
135+ (void)]
136+ [else
137+ (let loop ([xs xs])
138+ (unless (null? xs)
139+ (f (car xs))
140+ (loop (cdr xs))))]))
141+
142+ (define (andmap1 f xs)
143+ (cond
144+ [(null? xs) #t]
145+ [(null? (cdr xs)) (if (f (car xs)) #t #f)]
146+ [else
147+ (let loop ([xs xs])
148+ (cond
149+ [(null? xs) #t]
150+ [(f (car xs)) (loop (cdr xs))]
151+ [else #f]))]))
152+
153+ (define (ormap1 f xs)
154+ (cond
155+ [(null? xs) #f]
156+ [(null? (cdr xs)) (if (f (car xs)) #t #f)]
157+ [else
158+ (let loop ([xs xs])
159+ (cond
160+ [(null? xs) #f]
161+ [(f (car xs)) #t]
162+ [else (loop (cdr xs))]))]))
You can’t perform that action at this time.
0 commit comments