13 Feb
2007
13 Feb
'07
3:37 a.m.
Oops; I totally forgot the context of this whole discussion! I enjoyed your article. On 2/12/07, Bernie Pope <bjpop@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.