[Haskell-beginners] How to select items from one list depending
on another
Alexey Levan
exlevan at gmail.com
Wed Nov 10 11:08:09 EST 2010
2010/11/10 C K Kashyap <ckkashyap at gmail.com>:
> Hi,
> I have this problem at hand -
>
> Given two lists
>
> list1 = [0,1,2,0,1,4]
>
> list2 = [1,2,3,4,5,6]
>
> I need to take items from the second list only when the corresponding
> item in list1 is non-zero.
>
> list3 = map snd $ filter takeValid $ zip list1 list2 where
> takeValid (a,b) = a /= 0
>
> Is there a shorter way?
You can use list comprehenison and pattern matching here:
list3 = [xs | (0, xs) <- zip list1 list2]
More information about the Beginners
mailing list