fork download
  1. ; three homework problems
  2.  
  3. (define (sum vec)
  4. (let ((len (vector-length vec))
  5. (sum 0))
  6. (do ((i 0 (+ i 1))) ((= i len) sum)
  7. (set! sum (+ sum (vector-ref vec i))))))
  8.  
  9. (display (sum '#(4 9 1 8 3 2 6))) (newline)
  10.  
  11. (define (reverse! vec)
  12. (let ((len (vector-length vec)))
  13. (do ((lo 0 (+ lo 1))
  14. (hi (- len 1) (- hi 1)))
  15. ((<= hi lo) vec)
  16. (let ((temp (vector-ref vec lo)))
  17. (vector-set! vec lo (vector-ref vec hi))
  18. (vector-set! vec hi temp)))))
  19.  
  20. (display (reverse! '#(4 9 1 8 3 2 6))) (newline)
  21.  
  22. (define (sort! vec)
  23. (let ((len (vector-length vec)))
  24. (do ((i 0 (+ i 1))) ((= i len) vec)
  25. (do ((j i (- j 1)))
  26. ((or (zero? j)
  27. (<= (vector-ref vec (- j 1))
  28. (vector-ref vec j))))
  29. (let ((temp (vector-ref vec j)))
  30. (vector-set! vec j (vector-ref vec (- j 1)))
  31. (vector-set! vec (- j 1) temp))))))
  32.  
  33. (display (sort! '#(4 9 1 8 3 2 6))) (newline); your code goes here
Success #stdin #stdout 0.04s 8616KB
stdin
Standard input is empty
stdout
33
#(6 2 3 8 1 9 4)
#(1 2 3 4 6 8 9)