a. Use foldr to define map f. To avoid confusion, please rename it as myMap.
myMap :: (a->b)->[a]->[b]
myMap f = foldr ...
b. What does the following higher-order function, pipeline, do?
pipeline = map . foldr (.) id
where id x = x
is the identity function. Note that (.) makes . a prefix function.