
15 Mar
2006
15 Mar
'06
12:54 a.m.
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