ACCEPTABLE?: List Comprehensions? (original) (raw)

Joseph D. Darcy Joe.Darcy at Sun.COM
Tue Mar 17 23:15:37 PDT 2009


Reinier Zwitserloot wrote:

Ah, list comprehensions. I forgot them on my list. They aren't closures, but you can do quite a few closure use-cases with them, and are a lot easier to understand. The draft proposal looks good (but is incomplete; it doesn't mention any JLS chapters, for example), but there's one big issue it doesn't mention: If the list comprehensions return Iterables, then the generating expression, as well as the filter expressions, are effectively 'closures' and get all the complications that stem from this. For example, you would not be able to use non-final variables in there, unless we change the rules regarding usage of non-finals in 'closures', which involves a significant change for the JVM (it has to declare that variable on the heap and not on the stack).

Generating the entire list on the spot has none of those issues, and turns the entire proposal into syntactic sugar + a new utility class in the spirit of Collections and Arrays, named 'Iterables'. That's all. Joe: If a list comprehension proposal is written that involves (extensive) syntax sugar + 1 new class file and nothing else, would they have a chance?

I would be doubtful such a change would be within scope.

-Joe



More information about the coin-dev mailing list