[Haskell-cafe] defining mapPairs function

Neil Mitchell ndmitchell at gmail.com
Wed Aug 29 17:10:02 EDT 2007


Hi

> mapPairs :: (a -> a -> a) -> [a] -> [a]
> mapPairs f [x] = [x]
> mapPairs f [] = []
> mapPairs f (x:xs) = f x (head xs) : mapPairs f (tail xs)

It looks like it works, but you can get a better version by changing
the last line:

mapPairs f (x:y:zs) = ... - left as an exercise, but no need for head or tail.

Thanks

Neil


More information about the Haskell-Cafe mailing list