我的代码如下所示:
threeByThree :: Sudoku -> [Block]
threeByThree sudoku = (chunksOf 9(concat(transpose(take 3 (rows sudoku)))++
(transpose(take 3 rs))++(transpose xs)))
where
rs <- drop 3 (rows sudoku)
xs <- drop 3 rs
我收到的错误消息:
Sudoku.hs:130:12: parse error on input `<-'
哪一个应该是第一个箭头。我错过了这里显而易见的吗?
答案 0 :(得分:4)
可能你的意思是:
where
rs = drop 3 (rows sudoku)
xs = drop 3 rs
请注意,<-
具有不同的含义。它用于Monad desugaring。
答案 1 :(得分:1)
@Sibi对您的具体问题有正确的答案。我只想简单提一下,这个错误通常意味着您忘记将do
放在do
块的开头:
-- Parse error on input `<-'
example1 =
x <- m
y <- n
-- How to fix the error:
example2 = do
x <- m
y <- n