Go back..

#lang scheme

;; Jesse McGinnis
;; Assignment 9, Q2
;; uncompress.ss

;; global hash table
(define ht (make-hash))

;; uncompress : # ->
;; reads from input, and displays the uncompressed version
(define (uncompress)
  (define (my-uncompress key)
    (define next (peek-char))  
    (cond
      [(eof-object? next) (void)]
      [(char-whitespace? next) (display next) (read-char) (my-uncompress key)]
      [else
       (local [(define word (read))]
         (cond
           [(hash-ref ht word false) (display (hash-ref ht word false)) (my-uncompress key)]
           [else (display word) (hash-set! ht key word) (my-uncompress (add1 key))]))]))
  (my-uncompress 0))