
I find myself very often needing to use this function and was wondering if there was already a way to do this using zip,maps, and folds. zipMap::[a->b]->[a]->[b] zipMap [] _ = [] zipMap _ [] = [] zipMap (f:fs) (x:xs) = (f x):(zipMap fs xs) Alternatively I can get the same affect like this: fstOnSnd::(a->b,a)->b fstOnSnd (f,x) = f x zipMap::[a->b]->[a]->[b] zipMap fs xs = map fstOnSnd (zip fs xs) Both require me to invent some new function (or use a lambda) which I am trying to avoid. If it is unavoidable then can someone think of a better name then zipMap? Eric Wohlstadter UCDavis Software Engineering

Eric Allen Wohlstadter writes:
I find myself very often needing to use this function and was wondering if there was already a way to do this using zip,maps, and folds.
zipMap::[a->b]->[a]->[b] zipMap [] _ = [] zipMap _ [] = [] zipMap (f:fs) (x:xs) = (f x):(zipMap fs xs)
....
Both require me to invent some new function (or use a lambda) which I am trying to avoid. If it is unavoidable then can someone think of a better name then zipMap?
The following is more concise, and probably how I would do it: zipMap :: [a->b] -> [a] -> [b] zipMap = zipWith ($) Cheers, Tim
participants (4)
-
Christian Sievers
-
Eric Allen Wohlstadter
-
Mieszko Lis
-
Timothy Docker