From: KOJIMA Satoshi <skoji@...>
Date: 2011-07-20T06:15:20+09:00
Subject: [ruby-core:38218] Re: [Ruby 1.9 - Feature #5054] Compress a sequence of ends


Hi all, 

I prefer end! to enn..d.
It's like super parentheses in Lisp.

On 2011/07/20, at 1:47, Jeff Fraser wrote:

> 
> Issue #5054 has been updated by Jeff Fraser.
> 
> 
> I find this syntax to be un-ruby like. If anything, using something like 'end!' seems more rubyish:
> 
> module MyModule
>   class MyClass
>     def my_method
>       10.times do
>         if rand < 0.5
>           p :small
> end!
> 
> Having said that, I'm not in love with this or any of the other options - they all seem syntactically ugly, error prone, or both.
> ----------------------------------------
> Feature #5054: Compress a sequence of ends
> http://redmine.ruby-lang.org/issues/5054
> 
> Author: ANDO Yasushi ANDO
> Status: Open
> Priority: Normal
> Assignee: 
> Category: 
> Target version: 
> 
> 
> Though as matz said at rubykaigi2011 ruby is a quite good language, many people hate a long sequence of `end' like this:
> 
> module MyModule
>  class MyClass
>    def my_method
>      10.times do
>        if rand < 0.5 
>          p :small
>        end 
>      end 
>    end 
>  end 
> end
> 
> So, I'd like to propose introducing a special keyword, en(n+)d. Using this keyword, we can rewrite the above example like this:
> 
> module MyModule
>  class MyClass
>    def my_method
>      10.times do
>        if rand < 0.5 
>          p :small
>        ennnnnd 
> 
> I know matz's already rejected a python-style block. He wrote:
> 
>> it works badly with
>>  * tab/space mixture
>>  * templates, e.g. eRuby
>>  * expression with code chunk, e.g lambdas and blocks
> http://www.ruby-forum.com/topic/108457
> 
> These bad things won't occur by introducing en(n+)d.
> 
> Some implementations already exists.
> 
> JRuby
> - https://gist.github.com/1088363
> 
> CRuby
> - http://www.atdot.net/sp/raw/kn9iol
> - http://d.hatena.ne.jp/ku-ma-me/20110718/p1
> 
> Thanks for your consideration.
> 
> 
> -- 
> http://redmine.ruby-lang.org
> 

--
KOJIMA Satoshi <skoji@mac.com> / @skoji