[Haskell-cafe] Re: [Haskell] Trying to get a Composite design
pattern to work
Chris Kuklewicz
haskell at list.mightyreason.com
Tue Mar 14 19:54:05 EST 2006
Neil Mitchell wrote:
>> How's this?
>
> What about ++, in Haskell thats just an ordinary function, yet you are
> using the library one in this case.
(++) a b = foldr (:) b a
or
(++) = flip (foldr (:))
so
concat = foldr (flip (foldr (:))) []
also
map = (\f -> foldr ((:).f) [])
thus
concatMap = (\f -> (foldr (flip (foldr (:))) []) . (foldr ((:).f) []))
No recursive definitions in sight...all built with foldr
--
Chris
More information about the Haskell-Cafe
mailing list