0
我正在從http://www.cse.chalmers.se/edu/year/2013/course/TDA555/lab3.html開始製作Sudoku求解器的分步練習。在這裏,我試圖表達的行,列和箱約束條件Sudok應用列表中的函數列表
data Sudoku = Sudoku { getSudoku :: [[Maybe Int]] } deriving (Show, Eq)
rows :: Sudoku -> [[Maybe Int]]
rows (Sudoku rs) = rs
columns :: Sudoku -> [[Maybe Int]]
columns = transpose . rows
boxes :: Sudoku -> [[Maybe Int]]
boxes s = a ++ b ++ c
where a = map (concat . take 3) s1
b = map (concat . take 3 . drop 3) s1
c = map (concat . drop 6) s1
s1 = transpose . map (\xs -> [take 3 xs,take 3 (drop 3 xs), drop 6 xs]) $ rows s
我設法得到它的工作,但我想重構應用S1上的3個功能得到A,B,C成一個列表。我嘗試了< *>但不知何故無法讓它工作。由於