diff --git a/words/index.rkt b/words/index.rkt index 1073b8a..6bd0b95 100644 --- a/words/index.rkt +++ b/words/index.rkt @@ -23,7 +23,7 @@ (define (word->charidx word) (apply bitwise-ior (for/list ([c (in-string word)]) - (expt 2 (char->bitindex c))))) + (expt 2 (char->bitindex c))))) (define (bitindex->char i) (cond @@ -34,14 +34,14 @@ (define (charidx->chars int) (for/list ([i (in-range 64)] #:when (bitwise-bit-set? int i)) - (bitindex->char i))) + (bitindex->char i))) (define (contains-char? charidx-entry c) (bitwise-bit-set? charidx-entry (char->bitindex c))) (define capitalized-mask (for/sum ([i (in-range 32 59)]) - (expt 2 i))) + (expt 2 i))) (define (capitalized? charidx-entry) ;; a cap only appears at the beginning of a word, @@ -53,20 +53,20 @@ (require racket/set racket/match) (define (make-word-recs) (define words (for/set ([word (in-lines (open-input-file words-file))]) - word)) + word)) (for/vector ([word (in-set words)]) - (vector word - (word->charidx word) - (string-length word) - (match (regexp-match #rx"^(.+)e?s$" word) - [(list _ prefix) #:when (set-member? words prefix) #true] - [_ #false])))) + (vector word + (word->charidx word) + (string-length word) + (match (regexp-match #rx"^(.+)e?s$" word) + [(list _ prefix) #:when (set-member? words prefix) #true] + [_ #false])))) (define (regenerate-word-index!) (make-parent-directory* wordidx-file) - (define op (open-output-file wordidx-file #:exists 'replace)) - (s-exp->fasl (make-word-recs) op) - (flush-output op)) + (with-output-to-file wordidx-file + (λ () (s-exp->fasl (make-word-recs) (current-output-port))) + #:exists 'replace)) (define wordrecs (fasl->s-exp (open-input-file (and