Boost logo

Boost :

From: Jaakko Jarvi (jajarvi_at_[hidden])
Date: 2002-03-20 10:40:32


> I am inclined to agree with Peter about most everything he posted
> including the weight of the library,

My impression about the discussion so far is that LL features that are
not 'considered harmful' are:
- operators
- bind functions
- var, constant
- if_then, if_then_else

More controversial ones include:
- other control structures
- exception handling
- currying
- disallowing extra arguments

The library itself is not dependent of the first two.
They can be viewed as extensions, which can be included separately.

Currying is in the core of the library, and cannot be turned on or off
by the user, so we either have it or not.

Disallowing extra arguments:

> Simple non-jobs like dropping an argument shouldn't require
> extra notational support: that just pushes users closer to the place
> where they're forced to debate whether or not to use the library
> facilities.

The design rationale for this was that we
really do not know many (any) programming languages which would silently
ignore extra arguments to functions.
True that you can ignore arguments, say in C++:
int foo(int x, int y, int z) { return x; }
but here too the function is explicitly marked to take 3 arguments.

but most especially about this
> issue. It seems to me that the design of LL may not be well-matched to
> the needs of users. My experience with lambda expressions in other
> languages is that once the expression reaches a certain complexity, it
> makes far more sense to break the expression out into a separate
> function.
Yes, it does.

Jaakko


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