Currently this code doesn't compile
  IntConsumer c = x -> switch(x) { default -> System.out.println(x); };

I believe it should because this is the basic pattern for supporting the actor 
model,
you consume a message and do a side effect* depending on the type of the 
message,
translated in Java, you want a lambda that takes a message as parameter, calls 
a switch to do the pattern matching and return void.
 
The other reason is that it's not rare to move from a switch expression to a 
switch statement and vice-versa when developing the code,
and adding/removing a pair of curly braces around the code you are writing 
because it's the body/expression of a lambda is not very user friendly.

regards,
RĂ©mi

* it's cleaner in Erlang because you have tail calls, so the side effects are 
hidden.

Reply via email to