"flat" map method

Neal Gafter neal at gafter.com
Wed Jun 22 14:22:13 PDT 2011


On Wed, Jun 22, 2011 at 1:08 PM, Brian Goetz <brian.goetz at oracle.com> wrote:

> OK, but let's get lambda/extension methods/map/reduce right first :)
>

I agree.  But while I'm thinking about it, I should mention that this is one
of the key primitives necessary for the set of aggregate operations to
define a Monad.  The .NET framework does this with an operation called
SelectMany.  This may be important if you want the set of bulk operations
that you define (in SE 8, presumably) to be a basis for something like LinQ
(at some later SE, I presume).

To be more plain about it: I think you will have to be very careful about
the set of bulk data operations you provide in SE 8 if you want them to be a
part of a future extension providing more syntactically convenient query
syntax over various kinds of data streams.  That long-term language planning
necessarily impacts also the shape of the language features (e.g. lambda and
virtual extension methods).  As such, it is not too early to do such
planning.  In fact, if you wait until after the shape of SE8's language
features are firmed up, it may already be too late.

Cheers,
Neal "Seriously" Gafter


More information about the lambda-dev mailing list