[#8824] [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro)

ごとけんです

38 messages 2000/01/05
[#8839] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — matz@... (Yukihiro Matsumoto) 2000/01/06

まつもと ゆきひろです

[#8842] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro) 2000/01/06

ごとけんです

[#8843] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — matz@... (Yukihiro Matsumoto) 2000/01/06

まつもと ゆきひろです

[#8844] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro) 2000/01/06

ごとけんです

[#8846] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — matz@... (Yukihiro Matsumoto) 2000/01/06

まつもと ゆきひろです

[#8847] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro) 2000/01/06

ごとけんです

[#8893] Re: [ruby-list:20142] Re: Range expansion? — Akinori MUSHA aka knu <knu@...>

 knuです。ruby-listから舞台を移しました。

13 messages 2000/01/09

[#8980] 1.4.3 patch for near-future *BSD IPv6 support — Jun-ichiro itojun Hagino <itojun@...>

近い将来の{Net,Free,Open}BSDにはKAME IPv6 stackが統合されています。

17 messages 2000/01/20
[#8981] Re: 1.4.3 patch for near-future *BSD IPv6 support — Jun-ichiro itojun Hagino <itojun@...> 2000/01/20

> それから、

[ruby-dev:8850] Re: cascading messages

From: Shin-ichiro Hara <sinara@...>
Date: 2000-01-06 06:18:56 UTC
List: ruby-dev #8850
原です。

カスケーディングについては、何度か話題になってますね。

In message "[ruby-dev:8845] cascading messages"
    on 00/01/06, Kazunori NISHI <kazunori@swlab.csce.kyushu-u.ac.jp> writes:
|
|西@九大です。

|[4] ブロック形式で渡す。
|
|    obj {xxx; yyy; zzz}
|
|これは、Tk にヒントを得てるんですが、
|
|  widget = TkSomeWidget.new
|  widget.relief('raised')
|  widget.width(30)
|  widget.height(20)
|
|と書くのが面倒(?)だから、
|
|  widget = TkSomeWidget.new {
|    relief('raised'); width(30); height(20)
|  }
|
|と書けるようになっている精神は、cascading messages そのものだと思うの
|で(厳密には受け手が違うけど)、その類似性からもこのブロック形式による表
|記[4]に気持ちが動いています。Ruby の文法的にも合っている気がするので。

私もこれがいいと思うのですが、ブロックには任意の文が置けるので
結局 instance_eval と同じではないでしょうか。

私の提案としては、カスケードといえないのですが、

[5] identity の導入

  widget = TkSomeWidget.new.identity { |x|
    x.relief('raised'); x.width(30); x.height(20)
  }

というのを挙げます。もちろん

  def identity
    if iterator?
      yield self
    end
    self
  end

に過ぎないのですけど。

In This Thread