doubleEach :: Num a => [a] -> [a]
doubleEach [] = []
doubleEach (x:xs) = (2*x) : doubleEach xs
doubleEach' :: Num a => [a] -> [a]
doubleEach' = map (2*)
pairAndOne :: Num a => [a] -> [(a,a)]
pairAndOne [] = []
pairAndOne (x:xs) = (x, x+1) : pairAndOne xs
pairAndOne' :: Num a => [a] -> [(a,a)]
pairAndOne' = map (\x -> (x, x+1))
addEachPair :: Num a => [(a,a)] -> [a]
addEachPair [] = []
addEachPair ((x, y):xs) = (x + y) : addEachPair xs
addEachPair' :: Num a => [(a,a)] -> [a]
addEachPair' = map (\(x,y) -> x+y)
-- Or using List Comprehension --
doubleEach'' xs = [ 2 * x | x <- xs]
pairAndOne'' xs = [(x, x+1) | x <- xs]
addEachPair'' xs = [ x + y | (x,y) <- xs]
This entry was posted
on Tuesday, May 22nd, 2007 at 12:19 pm and is filed under Haskell - SOE.
You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.