[#45922] Ruby の Readline から redraw-current-line を呼び出すことは可能でしょうか? — kohno kazuyuki <kkohno@...>

こんにちは

14 messages 2009/03/17
[#45923] Re: Ruby の Readline から redraw-current-line を呼び出すことは可能でしょうか? — Takao Kouji <kouji@...7.net> 2009/03/17

高尾宏治です。

[#45925] Re: Ruby の Readline から redraw-current-line を呼び出すことは可能でしょうか? — "Akinori MUSHA" <knu@...> 2009/03/17

At Tue, 17 Mar 2009 13:15:54 +0900,

[ruby-list:45931] Re: 素朴な質問:なぜif(expr){}は許されないの?

From: "NARUSE, Yui" <naruse@...>
Date: 2009-03-17 16:49:49 UTC
List: ruby-list #45931
成瀬です。

KIMURA Koichi wrote:
>> それは「rubyの言語仕様なのだ」ということでしょうが、
>> それ以外の以外の理由はあるのでしょうか?
> 
> まつもとさんの好み。
> じゃなかったかなあ。
> 
> 裏を取るために検索したけど見つからなかった。
> Guido みたいに The History of Ruby 書いてください >まつもとさん

「Ruby用語集」に以下のような記述があります。

------------------
RubyがCやPerlで慣れ親しんだ {}を使わなかったの は以下の理由である

* 単文・複文問題の回避
* ぶらさがりelse問題の回避
* 可読性の向上
* begin, caseの構文上の問題

正直言うと、matzはendという名前の変数を使おうとして痛い目に あったことが何度かある。そこで、一度は { }を使っ た文法にしようと検討したが、beginとcase の文法がきれいにまとまらずに断念した。実をいうとこれが最大の 理由であったりする。
http://www.ruby-lang.org/ja/man/html/Ruby_CDD1B8ECBDB8.html#end
------------------

あと、どこかで「endを用いることはしばらく悩んでいたが、
emacsにてendを使ってもインデント等がが可能なことがわかって決心〜」という様な
話も見た記憶もあります。


なお、現在の構文上の話だと、()や;は付けてもたいてい問題ありませんね。
{}は、ブロックを作る以外に、ハッシュリテラルも作るので、
しばしばこちらと衝突してC風にできないケースもあります。

しかし、以下のようなことができちゃったりはしますね。

def if(cond)
  yield if cond
end

self.if(1){puts 1}

-- 
NARUSE, Yui  <naruse@airemix.jp>

In This Thread