[Haskell-cafe] Foldr tutorial,
Inspired by Getting a Fix from a Fold
Nicolas Frisby
nicolas.frisby at gmail.com
Mon Feb 12 14:37:07 EST 2007
Oops; I totally forgot the context of this whole discussion!
I enjoyed your article.
On 2/12/07, Bernie Pope <bjpop at csse.unimelb.edu.au> wrote:
> Nicolas Frisby wrote:
> > Guess this is a tricky choice for a foldr intro, since it requires a
> > "paramorphism" (see bananas lenses wires etc.)
> >
> > para :: (a -> [a] -> b -> b) -> b -> [a] -> b
> > para f e [] = e
> > para f e (x:xs) = f x xs (para f e xs)
> >
> > -- note that the original tail of the list (i.e. xs and not xs') is
> > used in the else-branch
> > dropWhile' p = para (\x xs xs' -> if p x then xs' else (x:xs)) []
> Actually, several people tried to use para, but of course it is not in
> the spirit of the challenge :)
>
> Cheers,
> Bernie.
>
More information about the Haskell-Cafe
mailing list