$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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.