Difference between revisions of "99 questions/Solutions/14"
< 99 questions | Solutions
Jump to navigation
Jump to search
Line 17: | Line 17: | ||
</haskell> |
</haskell> |
||
− | or, using concatMap: |
+ | or, using <hask>concatMap</hask>: |
<haskell> |
<haskell> |
||
dupli = concatMap (\x -> [x,x]) |
dupli = concatMap (\x -> [x,x]) |
||
</haskell> |
</haskell> |
||
− | also using concatMap: |
+ | also using <hask>concatMap</hask>: |
<haskell> |
<haskell> |
||
dupli = concatMap (replicate 2) |
dupli = concatMap (replicate 2) |
||
</haskell> |
</haskell> |
||
− | or, using foldr: |
+ | or, using <hask>foldr</hask>: |
<haskell> |
<haskell> |
||
dupli = foldr (\ x xs -> x : x : xs) [] |
dupli = foldr (\ x xs -> x : x : xs) [] |
Revision as of 03:55, 18 November 2010
(*) Duplicate the elements of a list.
dupli [] = []
dupli (x:xs) = x:x:dupli xs
or, using list comprehension syntax:
dupli list = concat [[x,x] | x <- list]
or, using the list monad:
dupli xs = xs >>= (\x -> [x,x])
or, using concatMap
:
dupli = concatMap (\x -> [x,x])
also using concatMap
:
dupli = concatMap (replicate 2)
or, using foldr
:
dupli = foldr (\ x xs -> x : x : xs) []