1:":"; exec mzscheme -r $0 "$@"
   2:
   3:(require (lib "vector-lib.ss" "srfi" "43"))
   4:(require (lib "string.ss"     "srfi" "13"))
   5:
   6:
   7:; global word storage
   8:(define words (make-hash-table 'equal))
   9:
  10:
  11:(define load-file
  12:  (lambda (fname)
  13:    (printf "Loading file: ~a\n" fname)
  14:    (call-with-input-file fname
  15:      (lambda (p)
  16:        (read-string (file-size fname) p)))))
  17:
  18:
  19:(define count-words
  20:  (lambda (wordlist)
  21:    (for-each (lambda (word)
  22:                (let ([value (hash-table-get words word 0)])
  23:                  (hash-table-put! words word (+ value 1))))
  24:              wordlist)))
  25:
  26:
  27:;;; main steps
  28:(begin 
  29:  (vector-for-each (lambda (i fname)
  30:                     (count-words (string-tokenize (load-file fname))))
  31:                   argv))