/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. (define (vector-map proc . vectors)
  3. (let ((n (apply min (map vector-length vectors))))
  4. (let ((u (make-vector n)))
  5. (do ((i 0 (+ i 1)))
  6. ((= i n))
  7. (vector-set! u i
  8. (apply proc
  9. (map (lambda (v)
  10. (vector-ref v i))
  11. vectors))))
  12. u)))
  13. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  14. (define (vector-for-each proc . vectors)
  15. (let ((n (apply min (map vector-length vectors))))
  16. (do ((i 0 (+ i 1)))
  17. ((= i n))
  18. (apply proc (map (lambda (v) (vector-ref v i)) vectors)))))
  19. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;