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