(define (tri-insertv V) (let ((L (vector-length V))) (do ((i 1 (+ i 1))) ((>= i L) V) (let ((j 0)) (let loop () (if (and (< j i) (< (vector-ref V j) (vector-ref V i))) (begin (set! j (+ j 1)) (loop)))) (let ((k i) (s (vector-ref V i))) (let loop () (if (> k j) (begin (vector-set! V k (vector-ref V (- k 1))) (set! k (- k 1)) (loop)))) (vector-set! V j s) ))) ))