Issue #16898 has been updated by jackmaple (maple jack).


Maybe my expression has some problems, sorry, it has been modified, in fact, what I want to say is that the existing lambda expression looks like the arrow symbol is not very intuitive.
If we can simplify the grammar, in some cases it would be better to remove the braces?
``` ruby
-> x x #error
-> x {x} #correct
```
So it would be better if we could provide a grammar with braces removed?In order to maintain compatibility, it is not necessary to modify the existing grammar.


----------------------------------------
Feature #16898: Modify the syntax of -> lambda expressions in ruby3
https://bugs.ruby-lang.org/issues/16898#change-85697

* Author: jackmaple (maple jack)
* Status: Open
* Priority: Normal
----------------------------------------
Hello ruby team.
Can we modify the syntax of lambda expressions in ruby3?
The current definition of lambda expression was added in ruby1.9, but this syntax looks too tedious.
``` ruby
lambda {|x| x + 1}   #This looks elegant.
#but...In lambda expression body, when there is only one line of statement
-> x {x + 1}    #Can the braces be removed?
-> x do x + 1 end  #As above, can the do ... end block be removed?
```
So are we going to abandon some historical issues? To modify -> lambda syntax?
It looks like this:
``` ruby
x -> x + 1
(x,y) -> x + y
x -> y -> x + y
x -> {
   x + 1
   x + 2
}
```
I think do..end or braces are only needed when there are multiple lines of code,lambda expression if there is only one statement should not need parentheses or do ... end block.
Thanks.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>