[Haskell-beginners] Iterating through lists

Magnus Therning magnus at therning.org
Mon May 18 11:36:11 UTC 2015


On 18 May 2015 at 13:23, Dananji Liyanage <dan9131 at gmail.com> wrote:
> Hi All,
>
> I'm building a 9x9 grid like list, and I want to extract each column of that
> grid.
>
> My input is a list of integers as follows;
>
> input = [0, 0, 0, 0, 0, 0, 4, 0, 9,
> 0, 0, 0, 0, 8, 0, 0, 5, 0,
> 7, 0, 2, 4, 5, 3, 6, 0, 0,
> 6, 7, 0, 0, 0, 1, 5, 0, 2,
> 2, 0, 8, 7, 0, 4, 3, 0, 1,
> 9, 0, 4, 5, 0, 0, 0, 8, 6,
> 0, 0, 6, 3, 1, 9, 8, 0, 7,
> 0, 2, 0, 0, 7, 0, 0, 0, 0,
> 1, 0, 7, 0, 0, 0, 0, 0, 0]
>
> I tried list comprehension with 'take' function in lists as follows;
>
> columns xs = [x | x <- (take 1 xs)] : columns (drop 9 xs) --> columns input
>
> This extracts only the first column. How I can go for the other columns?

One easy way would be to first look at the `split` package to find the
function `chunksOf` and then simply `Data.List.transpose` the result.

/M

-- 
Magnus Therning                      OpenPGP: 0xAB4DFBA4
email: magnus at therning.org   jabber: magnus at therning.org
twitter: magthe               http://therning.org/magnus


More information about the Beginners mailing list