Syntax changes

Zdenek Tronicek tronicek at
Mon Jul 21 08:44:23 PDT 2008


my opinion is probably biased because I got used to the current  
syntax. But if I consider all the alternatives, the Groovy syntax  
seems the best for me:

{ int, int -> int } p = { int x, int y -> x + y };

As for the argument that the return type used to be written before the  
parameter types, I must admit that the syntax is unusual in this  
sense. But how the syntax would have looked like if we used the  
"function" syntax? For example:

int (int, int) p = int (int x, int y) { x + y };

Although this is still acceptable, once there is one or more  
exceptions thrown, it is not easy to read:

void (long) throws InterruptedException wait =
   void (long millis) throws InterruptedException { Thread.sleep(millis); }

And a really mess will be when a closure returns or accepts another  
closure. In addition, closures are different to methods and this  
justifies a different syntax.

As for the curly braces, I like them more than parenthesis because  
closure is a block of code.

Zdenek Tronicek
Department of Computer Science and Engineering
Prague                   tel: +420 2 2435 7410

More information about the closures-dev mailing list