The FCM proposal is broader than hinted here and enables
implementation across multiple JDK versions.

There are five elements to FCM:
- method literals - a compile-safe way to obtain a
java.util.reflect.Method
- method references - referencing a method such that it can be passed
to a SAM interface
- inner methods - classic closures, where return returns to the caller
of the closure (short returns)
- method types - same as BGGA function types
- control abstraction - JCA spec, and extension to FCM (with long
returns)

In http://www.jroller.com/scolebourne/entry/fcm_closures_options_within
I argued that these form separate language changes. In particular, the
long returns in JCA form a distinct separate proposal that need not be
implemented at first, or at all.

Personally, I no longer find method types (function types) especially
compelling. I believe that they are not a sensible extension to the
Java language (which uses names not structure for types). But FCM
still works fully if you remove method types from the spec.

Thus, given a free choice, I would implement the following as a first
phase:
- FCM method literals, references and inner methods -
http://docs.google.com/View?docid=ddhp95vd_0f7mcns
- Enhanced for-each loops for maps - 
http://docs.google.com/View?docid=dfn5297z_14dwzrkpgw
- Enhanced for-each loop control - 
http://docs.google.com/View?docid=dfn5297z_15ck7x5ghr

(Using BGGA to produce enhanced for-each loops tends to produce
unexpected interactions and slower performance. Most developer needs
can be catered for using these two enhanced-for-each specs)

The choice between ARM, a JCA style control abstraction or something
else in-between could be considered as a second phase.

Stephen

On Jan 14, 3:43 pm, Reinier Zwitserloot <[email protected]> wrote:
> 1. Long Returns, Structural Types. (BGGA)
> 2. No Long Returns, Structural Types. (FCM)
> 3. No Long Returns, No Structural Types. (CICE)
> 4. Long Returns, No Structural Types. (None of the proposals I know
> of, but in my opinion the right answer).


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to