Понимание списка Haskell - PullRequest
       7

Понимание списка Haskell

1 голос
/ 01 декабря 2009

Я получаю сообщение об ошибке «Не в области действия: x» при выполнении следующих действий ...

blanks :: Sudoku -> [Pos]
blanks (Sudoku su) = [ fst x | x <- posSud | isBlank (snd x) ]
    where
        isBlank Nothing = True
        isBlank _       = False
        posSud          = zip ixPos (concat su)
        ixPos           = zip ixRows ixCols
        ixCols          = concat (replicate 9 [0..8])
        ixRows          = [floor (x / 9) | x <- [0..81]]

однако, если я снимаю защиту 2-й строки, GHCI компилируется без каких-либо ошибок.

Можете ли вы помочь мне понять, что я делаю неправильно?

1 Ответ

13 голосов
/ 01 декабря 2009

попробуй [ fst x | x <- posSud , isBlank (snd x) ]

...