Здравствуйте, взгляните на этот поток, уже обрабатывающий эту тему. А также этот поток может быть интересен.
Я пытаюсь написать функцию
candidates :: Sudoku -> Pos -> [Int]
, который задан Судоку
data Sudoku = Sudoku { rows :: [[Maybe Int]] }
deriving ( Show, Eq )
и позицией (type Pos = (Int, Int)
) определяет, какие цифры вы можете написать там, например, в строке судоку, которая уже содержит (1,2,4,7,9, х, х) вы не можете написать ни одно из уже существующих чисел в последнем ряду.Также другой проблемой является проверка высоты и ширины, чтобы числа не встречались более одного раза (обычные правила судоку).Таким образом, какие-либо предложения о том, как начать?
Пример: Судоку> Пример кандидатов (0,2) [4,8]