R J wrote: > What's the cleanest definition for a function f :: [a] -> [a] that takes a > list and returns the same list, with alternate items removed? e.g., f [0, > 1, 2, 3, 4, 5] = [1,3,5]? f = map head . takeWhile (not . null) . iterate (drop 2) . drop 1 Regards, Yitz