Я пытаюсь создать список, который будет содержать список решений для проблемы, которую я пытаюсь решить. Я делаю это, используя понимание списка, генерируя все возможные комбинации, а затем использую предикат для фильтрации, чтобы были включены только решения. Вот мой код.
solveRow :: Row -> [Row]
solveRow (Row target rowCells) =
[(cellsToRow target cls) | (cls <- (cellPermutations rowCells)), (result cls)==target]
cellPermutations
возвращает [[Cell]]
и, следовательно, cls
должно иметь тип [Cell]
. Когда я пытаюсь скомпилировать, я получаю сообщение об ошибке.
Я думал, <-
пропустил каждый элемент с правой стороны (в данном случае [Cell]
) к левой переменной. Почему я получаю ошибку разбора для <-
?