From: matz@... Date: 2020-04-10T08:26:01+00:00 Subject: [ruby-core:97784] [Ruby master Feature#16746] Endless method definition 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: