; three homework problems
(define (sum vec)
(let ((len (vector-length vec))
(sum 0))
(do ((i 0 (+ i 1))) ((= i len) sum)
(set! sum (+ sum (vector-ref vec i))))))
(display (sum '#(4 9 1 8 3 2 6))) (newline)
(define (reverse! vec)
(let ((len (vector-length vec)))
(do ((lo 0 (+ lo 1))
(hi (- len 1) (- hi 1)))
((<= hi lo) vec)
(let ((temp (vector-ref vec lo)))
(vector-set! vec lo (vector-ref vec hi))
(vector-set! vec hi temp)))))
(display (reverse! '#(4 9 1 8 3 2 6))) (newline)
(define (sort! vec)
(let ((len (vector-length vec)))
(do ((i 0 (+ i 1))) ((= i len) vec)
(do ((j i (- j 1)))
((or (zero? j)
(<= (vector-ref vec (- j 1))
(vector-ref vec j))))
(let ((temp (vector-ref vec j)))
(vector-set! vec j (vector-ref vec (- j 1)))
(vector-set! vec (- j 1) temp))))))
(display (sort! '#(4 9 1 8 3 2 6))) (newline); your code goes here
OyB0aHJlZSBob21ld29yayBwcm9ibGVtcwoKKGRlZmluZSAoc3VtIHZlYykKICAobGV0ICgobGVuICh2ZWN0b3ItbGVuZ3RoIHZlYykpCiAgICAgICAgKHN1bSAwKSkKICAgIChkbyAoKGkgMCAoKyBpIDEpKSkgKCg9IGkgbGVuKSBzdW0pCiAgICAgIChzZXQhIHN1bSAoKyBzdW0gKHZlY3Rvci1yZWYgdmVjIGkpKSkpKSkKCihkaXNwbGF5IChzdW0gJyMoNCA5IDEgOCAzIDIgNikpKSAobmV3bGluZSkKCihkZWZpbmUgKHJldmVyc2UhIHZlYykKICAobGV0ICgobGVuICh2ZWN0b3ItbGVuZ3RoIHZlYykpKQogICAgKGRvICgobG8gMCAoKyBsbyAxKSkKICAgICAgICAgKGhpICgtIGxlbiAxKSAoLSBoaSAxKSkpCiAgICAgICAgKCg8PSBoaSBsbykgdmVjKQogICAgICAobGV0ICgodGVtcCAodmVjdG9yLXJlZiB2ZWMgbG8pKSkKICAgICAgICAodmVjdG9yLXNldCEgdmVjIGxvICh2ZWN0b3ItcmVmIHZlYyBoaSkpCiAgICAgICAgKHZlY3Rvci1zZXQhIHZlYyBoaSB0ZW1wKSkpKSkKCihkaXNwbGF5IChyZXZlcnNlISAnIyg0IDkgMSA4IDMgMiA2KSkpIChuZXdsaW5lKQoKKGRlZmluZSAoc29ydCEgdmVjKQogIChsZXQgKChsZW4gKHZlY3Rvci1sZW5ndGggdmVjKSkpCiAgICAoZG8gKChpIDAgKCsgaSAxKSkpICgoPSBpIGxlbikgdmVjKQogICAgICAoZG8gKChqIGkgKC0gaiAxKSkpCiAgICAgICAgICAoKG9yICh6ZXJvPyBqKQogICAgICAgICAgICAgICAoPD0gKHZlY3Rvci1yZWYgdmVjICgtIGogMSkpCiAgICAgICAgICAgICAgICAgICAodmVjdG9yLXJlZiB2ZWMgaikpKSkKICAgICAgICAobGV0ICgodGVtcCAodmVjdG9yLXJlZiB2ZWMgaikpKQogICAgICAgICAgKHZlY3Rvci1zZXQhIHZlYyBqICh2ZWN0b3ItcmVmIHZlYyAoLSBqIDEpKSkKICAgICAgICAgICh2ZWN0b3Itc2V0ISB2ZWMgKC0gaiAxKSB0ZW1wKSkpKSkpCgooZGlzcGxheSAoc29ydCEgJyMoNCA5IDEgOCAzIDIgNikpKSAobmV3bGluZSk7IHlvdXIgY29kZSBnb2VzIGhlcmU=