リストを取り込んでリストのリストを返すHaskellコードを書こうとしています。次のコードでこれを行うと、「関数reGroupの非網羅的なパターン」が表示されます。
reGroup :: [[Int]] -> [Int] -> [[Int]]
reGroup [[]] [] = [[]]
reGroup [[]] xs = reGroup [(take 3 xs)] (drop 3 xs)
reGroup [[a]] [] = [[a]]
reGroup [[a]] xs = reGroup [[a], (take 3 xs)] (drop 3 xs)
-- calling the reGroup function from another function as follow
reGroup [[]] [1,2,3,4,5,6,7,8,9]
私が欲しいのは[1,2,3,4,5,6,7,8,9]
->[[1,2,3], [4,5,6], [7,8,9]]
です。私は何を間違っているのですか、それとも誰かが私にそれへの簡単な方法を教えてもらえますか?