|
Boost : |
From: joel de guzman (djowel_at_[hidden])
Date: 2002-04-15 00:23:07
----- Original Message -----
From: "Aleksey Gurtovoy" :
> I _do_ appreciate your comments. And it's not about Loki vs. MPL (at least
> not this sub-thread :). And I am not trying to disqualify anyone's posts
> basing on the criteria that their opinion is different than mine. I said
> what I think regarding an implicit statement of MPL not facilitating
> metaprogramming - basing on the technical merits.
Ok. I get it now. The next_if auxillary meta-function is needed only to
make non-conformant compilers happy (hey, no sarcasm here, please
not again :-). It is meta-lambda that has some problems with non conformant
compilers. After a long and winding road, I finally get it.
Here are my revised comments (so far):
1) fold (and map, filter?) are still the main *engine* I see behind the power
of MPL.
2) to be truly useful, fold (and map, filter?) [higher order functions] cry out for
a lambda facility.
3) without lambda (my opinion only) the count_if version *does not*
facilitate metaprogramming because I (user hat on) can write a count_if
version from scratch faster than it would take me to understand the whys
fully (i.e. why we need an aux next_if etc.)
4) I think effort must be put to make meta-lambda work in a non-PTS
environment.
5) Effort must be put to make meta-lambda work without using template
template facilities.
And last *and least* (Dave, this is no more than just a +personal wish+ )
6) More FP sounding names. fold is a good start. fold is not even
a part of STL. I wish for map, filter, foldl, foldr, etc. etc. You have good
arguments to go with the STL. IMO, what I don't quite find intuitive is
the mutation *implication* of erase, replace etc, etc. IMO, there are
pros and cons to both interfaces. I think too that it is too early now
to conclude which will be better for *us*, the users. So, why not have
both? After all, boost is supposedly a test bed. How can we test if
indeed the STLish interface is better if we don't have any other
option anyway?
<< remember, this is last *and least*. I can live without this. If I have
some time, a good start to get acquainted with MPL might be to
write an external library that implements a subset of Haskell's prelude.
I am quite enamored with this idea. I am even thinking about writing
a Spirit parser that inputs a Haskell subset code and outputs MPL
code. >>
Many thanks,
--Joel
PS> Aleksey, I may be assertive but I was not offended at all :-)
I still think that MPL is a beautifully engineered library regardless
of my criticisms. The template C++ metaprocessor as an FP facility
is a frontier that's largely unexplored. I am really glad that libraries
like MPL (and Loki) are exploring this further. I certainly hope that
in the end, we will reach an agreement that will lead us all to
unity.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk