anchor.diff:                      *andre*
                       ))
       (multiple-value-bind (solutions tries) (sudoku-solver (symbol-value sudoku))
  -      (terpri) (print sudoku) (terpri)
  -
  -      (sudoku-print (symbol-value sudoku))
  +      (terpri)
  +      (when print
  +        (print sudoku) (terpri)
  +        (sudoku-print (symbol-value sudoku)))
         (format t "  ~A (with ~D empty slots)~%  has ~D solution~:*~P,~%  found in ~D tries.~2%"
                 sudoku (sudoku-count-empty-slots (symbol-value sudoku))
                 (length solutions) tries)
  -      (map nil 'sudoku-print solutions))))
  -
  +      (when print
  +        (map nil 'sudoku-print solutions)))))
   
   
   ;;----------------------------------------------------------------------
  
positive.code: (eval-when (:compile-toplevel :load-toplevel :execute)
    (setf *readtable* (copy-readtable nil)))
  
  (ql:quickload :com.informatimago.common-lisp.cesarum)
  
  (defpackage "COM.INFORMATIMAGO.SUDOKU-SOLVER"
    (:use "COMMON-LISP"
          "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.LIST"
          "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.ARRAY")
    (:export "SUDOKU-SOLVER" "SUDOKU-PRINT"))
  
  (in-package "COM.INFORMATIMAGO.SUDOKU-SOLVER")
  
  
  
  (defun make-sudoku ()
    (make-array '(9 9) :initial-element 'x))
  
negative.code:     (terpri) (print file) (terpri)
      (print (time (solve-grids/no-print file)))))
  
  ;; (solve-sudokus :print t)
  ;; (solve-sudokus :print nil)
  ;;;; THE END ;;;;
  