Henning Thielemann wrote:
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
'drop'.


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


chop blockHeight (map (chop blockWidth) image)

That would divide

abcd
efgh
ijkl
mnop

into

[
[
ab
cd
,
ef
gh
]
,
[
ij
kl
,
mn
op
]
]

at block size 2. In any case, the original poster was not very clear
about what they want...

--
Dr. Janis Voigtlaender
http://wwwtcs.inf.tu-dresden.de/~voigt/
mailto:[EMAIL PROTECTED]

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to