Non-local transfers: deja-vu

Gernot Neppert mcnepp02 at googlemail.com
Mon Jan 4 07:34:08 PST 2010


Hello all,

first of all, I need to say I'm thrilled that a simplified syntax for
anonymous function types is going to be part of Java finally!

What amazes me, however, is the fact that Neal Gafter's proposal about
a "Control Invocation syntax" is being seriously considered again.
Of course I don't dispute his right to bring it up again, but I wonder
why nobody seems to remember that BGGA died largely due to the heated
debate about the insurmountable intricacies that ensued this proposal.
The following example was discussed today in this mailing list:

#int() one = null;
synchronized int sum(int n) {

  if (one == null) one = #() { return 1; };

  return n == 0 ? 0 : sum(n-1) + one();
}

To me, the idea that the expression "return 1" within the lambda
should mean anything else but return the value 1 from the lambda is
absurd!

So I'm asking: Do we really *want* either of Control Invocation Syntax
or Non-Local Transfers  (the former requiring the latter but not vice
versa)?

Cheerio,

Gernot


More information about the closures-dev mailing list