diff options
| -rw-r--r-- | toplevel.scm | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/toplevel.scm b/toplevel.scm index 9fa11bd..d5d6cd0 100644 --- a/toplevel.scm +++ b/toplevel.scm @@ -1,11 +1,23 @@ (load "markov.chicken.so") (import markov (chicken format) - srfi-18) + srfi-18 + srfi-69 + (chicken file)) -(display "Generating table (this may take a while)\n" (current-error-port)) -(define table (make-table-from-file "kjv.txt")) -(display "Done generating.\n") +(define table + (if (file-exists? "kjv-data.scm") + (with-input-from-file "kjv-data.scm" + (lambda () + (display "Reading previously generated data.\n" (current-error-port)) + (alist->hash-table (read)))) + (with-output-to-file "kjv-data.scm" + (lambda () + (display "Generating table (this may take a while)\n" (current-error-port)) + (let ((table (make-table-from-file "kjv.txt"))) + (display "done generating.\n" (current-error-port)) + (write (hash-table->alist table)) + table))))) (define (generate-until-word* current collected limits) (if (member current limits) |
