[Haskell-cafe] A function that makes list of Bool lists from list of Int lists

Alexandru Scvortov scvalex at gmail.com
Sat Apr 3 12:18:43 EDT 2010


Too many points.

listbool :: [[a]] -> [[Bool]]
listbool = zipWith ($) (map (map . const) (cycle [True, False]))

Cheers,
Alex

On Saturday 03 April 2010 15:13:48 Edward Z. Yang wrote:
> Excerpts from Maur Toter's message of Sat Apr 03 09:54:26 -0400 2010:
> > I am new with Haskell so I think this will be a pretty dumb question.
> > I would like to make a function that makes this:
> > 
> > listbool :: [[Int]] -> [[Bool]]
> > 
> > in this way:
> > listbool [[1,2],[3,4]] == [[True, True],[False, False]]
> > listbool [[1],[5,5],[5,4],[2]] == [[True],[False, False],[True, True],
> > [False]]
> > 
> > So always True from the elements of the first list, False from the
> > elements of the second one, etc...
> 
> Sure you can do this.  In fact, the type can be more general:
> 
> listbool :: [[a]] -> [[Bool]]
> listbool xs = zipWith ($) (map (\x -> map (const x)) (cycle [True, False]))
> xs
> 
> Cheers,
> Edward
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe


More information about the Haskell-Cafe mailing list