
10 Nov
2010
10 Nov
'10
11:08 a.m.
2010/11/10 C K Kashyap
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]