From 68bd77c440a82b530ffe7f19690a1321d66ffc52 Mon Sep 17 00:00:00 2001 From: Nathan Froyd Subject: [PATCH 27/39] move word allocation out of doubly-nested loop --- src/lisp/solver.lisp | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lisp/solver.lisp b/src/lisp/solver.lisp index e73708f..aa331dc 100755 --- a/src/lisp/solver.lisp +++ b/src/lisp/solver.lisp @@ -115,6 +115,10 @@ (let* ((the-board (create-board (board-from-stream *standard-input*))) + (word (make-array 20 + :initial-element #\Null + :element-type 'character + :fill-pointer 0)) (board-letters (board-letters the-board))) (declare (type board the-board)) ;; Print out the board config @@ -128,12 +132,10 @@ (declare (type simple-vector row)) (dotimes (j (board-cols the-board)) (let ((letter (aref row j))) + (setf (fill-pointer word) 0) (find-words letter - (make-array 20 - :initial-element #\Null - :element-type 'character - :fill-pointer 0) + word 0 *dict-trie* #'(lambda (word) -- 1.6.2