週をまたいでしまった。解答例もでてるけど。
問題3。これも内包表記で。
boxing :: [[a]] -> [[a]] boxing m = [[m!!x!!y| x <- [0..l1], y <- [0..l1], x`div`l2 == i, y`div`l2 == j] | i <- [0..l3], j <- [0..l3]] where l1 = length m - 1 l2 = (floor . sqrt . fromIntegral . length) m l3 = l2 -1
行列のサイズから n を求めるとこで型が合わずにはまった(sqrt
は (Floating a) => a -> a
,必要なのは Int
)。結局 floor
を使った。