Mjahaja
This commit is contained in:
@ -19,9 +19,40 @@
|
|||||||
(((? x))
|
(((? x))
|
||||||
(map (lambda (y) (list y)) x))
|
(map (lambda (y) (list y)) x))
|
||||||
(((? x) . (? xs))
|
(((? x) . (? xs))
|
||||||
|
(if (list? x)
|
||||||
(zipWith
|
(zipWith
|
||||||
cons
|
cons
|
||||||
x
|
x
|
||||||
(transpose xs)))))
|
(transpose xs))
|
||||||
|
('error)))
|
||||||
|
(_ 'error)))
|
||||||
|
|
||||||
(defun getCol (grid x) (getRow (transpose grid) x))
|
(defun getCol (grid x) (getRow (transpose grid) x))
|
||||||
|
|
||||||
|
(defun MatrixToList (m) (foldr append nil m))
|
||||||
|
|
||||||
|
(defun getSubMatrix (m startcol stopcol startrow stoprow)
|
||||||
|
(let ((f (lambda (x start stop) (take (drop x start) (- (+ 1 stop) start)))))
|
||||||
|
(map (lambda (x) (f x startcol stopcol)) (f m startrow stoprow))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun getSubGridAsList (m x)
|
||||||
|
(if (and (>= x 0) (< x 9))
|
||||||
|
(let ((sr (* (// x 3) 3))
|
||||||
|
(er (+ sr 2))
|
||||||
|
(sc (* (mod x 3) 3))
|
||||||
|
(ec (+ sc 2)))
|
||||||
|
(matrixToList (getSubMatrix m sr er sc ec)))
|
||||||
|
'error))
|
||||||
|
|
||||||
|
(define exampleGrid
|
||||||
|
'(
|
||||||
|
(1 2 3 4 5 6 7 8 9)
|
||||||
|
(2 3 4 5 6 7 8 9 1)
|
||||||
|
(3 4 5 6 7 8 9 1 2)
|
||||||
|
(4 5 6 7 8 9 1 2 3)
|
||||||
|
(5 6 7 8 9 1 2 3 4)
|
||||||
|
(6 7 8 9 1 2 3 4 5)
|
||||||
|
(7 8 9 1 2 3 4 5 6)
|
||||||
|
(8 9 1 2 3 4 5 6 7)
|
||||||
|
(9 1 2 3 4 5 6 7 8)))
|
||||||
|
|||||||
Reference in New Issue
Block a user