#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))