A syntax option (function types versus arrays)

Joshua Bloch jjb at google.com
Thu Mar 11 10:01:37 PST 2010


My two cents:

#< #< R() throws E >( #< R( A ) throws E >, A ) > curry =
    new #< #<R() throws E >( #< R( A ) throws E > l, A a ) >( l.( a ) );

Nesting is nice, but:

   - The angle brackets will remind people of generics, which won't make
   them happy.
   - Angle brackets are a poor man's parentheses, because they do double
   duty as unmatched operators (less than and greater than).
   - The pound-sign+left-angle-bracket combo (#<) isn't exactly easy on the
   eyes.
   - The new keyword will be viewed as exactly the kind of boilerplate that
   this effort was designed to eliminate.

I do think it makes sense to explore new syntax proposals, but I'm not sure
I like this one better than the one that's currently on the table.

          Josh


More information about the lambda-dev mailing list