Boost logo

Boost :

Subject: Re: [boost] [fusion] Any chance we can incorporate more folds?
From: Joel de Guzman (joel_at_[hidden])
Date: 2010-08-20 19:59:47


On 8/21/2010 5:21 AM, Steven Watanabe wrote:
> AMDG
>
> David Sankel wrote:
>> I've implemented, in particular, foldr1:
>>
>> template<
>> typename Sequence,
>> typename State,
>> typename F
>> typename result_of::foldr1<Sequence, F>::type foldr1(
>> Sequence& seq, F const& f);
>>
>> Semantics:
>>
>> Equivalent to f(....f(f(e1,e2),e3)...) where e1 ...eN are the elements
>> of seq.
>>
>> It is very useful for fusion sequences of possibly distinct types that have
>> identical concepts which can be merged in some way (like generators).
>>
>> I very much like the folds that are included in Haskell's prelude, namely
>> foldl, foldl1, foldr (somewhat like boost's fold), and foldr1[1].
>
> We already have reverse_fold, which makes 2/4.

These contributions are very welcome, David. I'd love to take them in
if you also plan to write some docs to go with it :-)

Regards,

-- 
Joel de Guzman
http://www.boostpro.com
http://spirit.sf.net

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk