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 -~----------~----~----~----~------~----~------~--~---
