PageRenderTime 29ms CodeModel.GetById 18ms app.highlight 6ms RepoModel.GetById 1ms app.codeStats 0ms

/src/vector/gambit/source.scm

http://github.com/dharmatech/abstracting
Scheme | 33 lines | 16 code | 14 blank | 3 comment | 0 complexity | 728b0ae03271449348375e8dc5dbd6d0 MD5 | raw file
 1
 2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 3
 4(define (vector-map proc . vectors)
 5
 6  (let ((n (apply min (map vector-length vectors))))
 7
 8    (let ((u (make-vector n)))
 9
10      (do ((i 0 (+ i 1)))
11          ((= i n))
12
13        (vector-set! u i
14                     (apply proc
15                            (map (lambda (v)
16                                   (vector-ref v i))
17                                 vectors))))
18
19      u)))
20
21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
22
23(define (vector-for-each proc . vectors)
24
25  (let ((n (apply min (map vector-length vectors))))
26
27    (do ((i 0 (+ i 1)))
28        ((= i n))
29
30      (apply proc (map (lambda (v) (vector-ref v i)) vectors)))))
31
32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
33