[Haskell-cafe] foldlWhile

Serge D. Mechveliani mechvel at botik.ru
Mon Nov 22 01:41:47 EST 2004


To my question of
  
>>  foldlWhile :: (a -> b -> a) -> (a -> Bool) -> a -> [b] -> a
>>  foldlWhile    f                p              a    bs  =
>>    case
>>        (bs, p a)
>>    of
>>    ([],    _    ) -> a
>>    (_,     False) -> a
>>    (b:bs', _    ) -> foldlWhile f p (f a b) bs'
>> 
>> foldl  does not seem to cover this.


Dylan Thurston wrote: On Nov 20, 2004 

> An alternative is
> 
>   foldlWhile f p a bs = last $ takeWhile p $ scanl f a bs
> 


Yes. Thank you. 
Inspecting Prelude, we find out that  scanl  expresses, mainly, 
the thing.

-----------------
Serge Mechveliani
mechvel at botik.ru





More information about the Haskell-Cafe mailing list