[#97678] [Ruby master Feature#16752] :private param for const_set — bughitgithub@...
Issue #16752 has been reported by bughit (bug hit).
5 messages
2020/04/02
[ruby-core:97784] [Ruby master Feature#16746] Endless method definition
From:
matz@...
Date:
2020-04-10 08:26:01 UTC
List:
ruby-core #97784
Issue #16746 has been updated by matz (Yukihiro Matsumoto).
I'd like to experiment with this new syntax. We may find drawbacks in the future, but to find them, we need to experiment first.
Matz.
----------------------------------------
Feature #16746: Endless method definition
https://bugs.ruby-lang.org/issues/16746#change-85001
* Author: mame (Yusuke Endoh)
* Status: Assigned
* Priority: Normal
* Assignee: nobu (Nobuyoshi Nakada)
----------------------------------------
Ruby syntax is full of "end"s. I'm paranoid that the ends end Ruby. I hope Ruby is endless.
So, I'd like to propose a new method definition syntax.
```ruby
def: value(args) = expression
```
As you see, there is no "end".
Examples.
```ruby
def: hello(name) =
puts("Hello, #{ name }")
hello("endless Ruby") #=> Hello, endless Ruby
```
```ruby
def: inc(x) = x + 1
p inc(42) #=> 43
```
```ruby
x = Object.new
def: x.foo = "FOO"
p x.foo #=> "FOO"
```
```ruby
def: fib(x) =
x < 2 ? x : fib(x-1) + fib(x-2)
p fib(10) #=> 55
```
Limitations.
* `def: foo x = x` is invalid; the parentheses for formal arguments are mandatory.
* `private def: foo = x` is invalid; this method definition cannot be an method argument.
A patch is attached. No conflicts.
---Files--------------------------------
endless-method-definition.patch (2.47 KB)
--
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>