/src/vector/gambit/source.scm
Scheme | 33 lines | 16 code | 14 blank | 3 comment | 0 complexity | 728b0ae03271449348375e8dc5dbd6d0 MD5 | raw file
Possible License(s): BSD-3-Clause
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