square.scm 592 B

12345678910111213141516171819202122
  1. (define-module (sudoku square)
  2. #:use-module (srfi srfi-1)
  3. #:use-module (srfi srfi-9)
  4. #:export (square
  5. make-square square? square-value
  6. square-candidates))
  7. (define-record-type <square>
  8. (make-square value candidates)
  9. square?
  10. (value square-value)
  11. (candidates square-candidates))
  12. (define-public (make-square dimension)
  13. (make-square #f (iota dimension 1)))
  14. (define-public (set-square-value square v)
  15. (make-square v (square-candidates square)))
  16. (define-public (set-square-candidates square candidates)
  17. (make-square (square-value square) candidates))