[Haskell-cafe] How to devide matrix into small blocks

Henning Thielemann lemming at henning-thielemann.de
Wed Jun 13 03:09:01 EDT 2007

On Wed, 13 Jun 2007, L.Guo wrote:

> I already have one matrix of type [[a]] to store one image.
> What I want to do is to devide the image into severial small blocks in same size.
> To do that, I wrote this tool function.
> chop      :: Int -> [a] -> [[a]]
> chop _ [] = []
> chop n ls = take n ls : chop n (drop n ls)

I assume that it is more efficient to use 'splitAt' instead of 'take' and

> But I do not know how to use it to write the function.

chop blockHeight (map (chop blockWidth) image)

More information about the Haskell-Cafe mailing list