Boost logo

Boost :

From: Asger Alstrup Nielsen (alstrup_at_[hidden])
Date: 2002-03-21 15:21:56


I agree with Dave that it is premature to incorporate the current Lambda
Library into Boost given the recent developments and discussions.

>From a preliminary look, it seems to me that the Phoenix work is better
than either LL or FACT!, both in terms of semantics and syntax.

I have these issues with LL:

1) Regarding the strict/weak arity question, it seems to me that the
weak arity should be default, following the reasoning from Phoenix. The
strict arity checking does not seem symmetric to me, and the word is
that it is not practical, so it should be optional.

2) A more detailed semantic comparision with FACT!, Phoenix, and
Phoenix's ancestor FC++ would be helpful.

3) In particular, I would like a more detailed analysis of the relevance
of scoping in the lambda expressions as FACT! (and Phoenix?) provides.
As I understood Jörg Striegnitz, LL does not have scope. It seems to me
that this is a requirement for lambda expressions if they are to be
comparable to lambda expressions from functional programming. I don't
see how lambda expressions can cater for recursive expressions without
introducing the concept of scoping.

4) Additionally, an performance comparision with competitors would also
be helpful.

5) The feature-set of LL seems to be a mix of "hey, we can do this too",
and features that are more useful and practical in the daily work.

6) The syntactic overloads as presented in Phoenix are nicer than the
Lisp-like parenthesis-approach of LL.

7) Practically, if FACT! and Phoenix are portable to VC6, while LL is
not, this is worth considering.

Dave Abrahams wrote:
> On the other hand, I don't want to stand in the way of
> progress.

In the long run, I think the most progress will be made by including the
state-of-the-art libraries in Boost. While LL might have been the
state-of-the-art a month or two ago, it is not clear that it still is
today. On the contrary, I think the above issues demonstrate that this
field is still changing rapidly.

Therefore I think Boost should wait to adopt any functional library
until the technology is more mature. I feel that this area has so great
a potential that we should not settle for the second best. In the
meantime, each individual should download LL, FACT!, Phoenix and what
not, and use this in their own software. This will only help mature this
field.

So, I vote to reject the Lambda Library at the moment on the grounds
that it is premature in the light of the recent developments and
discussions.

Having said that, I want to congratulate the authors of LL for
demonstrating what is possible with C++. It is truly amazing seminal
work, but I feel there is still some work to be done before the limit is
reached.

Greets,

Asger Alstrup Nielsen


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