[#3747] constants (or class vriable?) — Wakou Aoyama <wakou@...>

青山です。

20 messages 1998/12/06
[#3751] Re: constants (or class vriable?) — Shin-ichro Hara <sinara@...> 1998/12/07

原です。

[#3763] Re: constants (or class vriable?) — Wakou Aoyama <wakou@...> 1998/12/07

青山です。

[#3764] Re: constants (or class vriable?) — matz@... (Yukihiro Matsumoto) 1998/12/08

まつもと ゆきひろです

[#3767] Re: constants (or class vriable?) — kjana@... (YANAGAWA Kazuhisa) 1998/12/08

In message <199812080034.JAA05946@picachu.netlab.co.jp>

[#3826] ruby 1.1d0 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

35 messages 1998/12/16

[#3873] (?: ) does not work? — shugo@... (MAEDA Shugo)

前田です。

15 messages 1998/12/19

[#3881] I want to catch all jump — shugo@... (Shugo Maeda)

前田です。

17 messages 1998/12/21
[#3895] Re: I want to catch all jump — matz@... (Yukihiro Matsumoto) 1998/12/22

まつもと ゆきひろです

[#3894] ruby 1.1d1 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1998/12/22

[#3899] interpreter reinitialization — shugo@... (Shugo Maeda)

前田です。

22 messages 1998/12/22
[#3923] Re: interpreter reinitialization — matz@... (Yukihiro Matsumoto) 1998/12/23

まつもと ゆきひろです

[#3926] Re: interpreter reinitialization — shugo@... (Shugo Maeda) 1998/12/23

前田です。

[#3931] Re: interpreter reinitialization — matz@... (Yukihiro Matsumoto) 1998/12/24

まつもと ゆきひろです

[#3956] Re: interpreter reinitialization — shugo@... (Shugo Maeda) 1998/12/24

前田です。

[#3960] Re: interpreter reinitialization — matz@... (Yukihiro Matsumoto) 1998/12/24

まつもと ゆきひろです

[#4002] config.guess — Koji Arai <JCA02266@...>

新井です。

24 messages 1998/12/26
[#4039] Re: config.guess — matz@... (Yukihiro Matsumoto) 1998/12/29

まつもと ゆきひろです

[#4045] Re: config.guess — Koji Arai <JCA02266@...> 1998/12/31

新井です。

[#4047] Re: config.guess — matz@... (Yukihiro Matsumoto) 1999/01/01

まつもと ゆきひろです

[#4048] Re: config.guess — Koji Arai <JCA02266@...> 1999/01/01

新井です。

[#4049] Re: config.guess — matz@... (Yukihiro Matsumoto) 1999/01/02

まつもと ゆきひろです

[#4050] Re: config.guess — Motoyuki Kasahara <m-kasahr@...> 1999/01/04

笠原です。

[#4030] module Precision — gotoken@... (GOTO Kentaro)

ごとけんです

78 messages 1998/12/28
[#4310] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/21

ごとけんです

[#4311] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/01/21

まつもと ゆきひろです

[#4312] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/21

ごとけんです

[#4317] Re: module Precision — keiju@... (石塚圭樹 ) 1999/01/21

けいじゅ@日本ラショナルソフトウェアです.

[#4364] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/25

ごとけんです

[#4478] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/01/28

まつもと ゆきひろです

[#4506] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/01/30

ごとけんです

[#4552] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/02/01

まつもと ゆきひろです

[#4557] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/01

ごとけんです

[#4632] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/03

ごとけんです

[#4647] Re: module Precision — keiju@... (石塚圭樹 ) 1999/02/03

けいじゅ@日本ラショナルソフトウェアです.

[#4648] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/03

ごとけんです

[#4633] Re: module Precision — matz@... (Yukihiro Matsumoto) 1999/02/03

まつもと ゆきひろです

[#4636] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/03

ごとけんです

[#4836] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/08

ごとけんです

[#4843] Re: module Precision — keiju@... (石塚圭樹 ) 1999/02/08

けいじゅ@日本ラショナルソフトウェアです.

[#4849] Re: module Precision — gotoken@... (GOTO Kentaro) 1999/02/08

ごとけんです

[#4924] Re: module Precision — keiju@... (石塚圭樹 ) 1999/02/09

けいじゅ@日本ラショナルソフトウェアです.

[#4976] a genericity — gotoken@... (GOTO Kentaro) 1999/02/10

ごとけんです

[#5008] Re: a genericity — keiju@... (石塚圭樹 ) 1999/02/11

けいじゅ@日本ラショナルソフトウェアです.

[#5018] Re: a genericity — gotoken@... (GOTO Kentaro) 1999/02/11

ごとけんです

[#5171] Re: a genericity — keiju@... (石塚圭樹 ) 1999/02/16

けいじゅ@日本ラショナルソフトウェアです.

[ruby-dev:3841] Re: List()

From: Shin-ichiro Hara <sinara@...>
Date: 1998-12-16 16:43:52 UTC
List: ruby-dev #3841
原です。

> 前田です。

> ほんとはString#scanのようなメソッドも一応すべてListを使うように
> 変更した方がよいと思うのですが。

ほんとはそうですね。でも変更してもしなくてもユーザーにはほとんど
関係ないでしょうね。scan(...) { |*x| ... と使っていた人はほとん
どいないでしょうから。でもほんとは List を使うべきです。


> いや、each_with_indexの挙動を変えるかどうかは別の議論が必要だと
> 思うのですが、ユーザが

なるほど、Hash#each は yield(k, v) に変えて each_with_index
はそのままなわけですね。あれ、それでいいではないですか。なぜ私
はそれに気づかなかったのだろう。この方法なら非互換性はかなり少
なくなります。

> # ひょっとしたら僕の主張がeach_with_indexの挙動を変えるべきだと受け
> # 取られていたために議論がすれちがっていたのでしょうか。

それもあります。しかし、each_with_index は変えるべきだと思い込
んでいた自分自身が理解不能です。

、、、と思ったんだけど、思い出しました。風が吹くと桶屋がもうかる式論理
ですが説明します。

List 方式を導入したら Enumerable の多くのメソッドを書き換えたく
なる。なぜなら現在はたとえば collect は

(あ)
  def collect
    ary = []
    each { |x|
      ary.push yield(x)
    }
    ary
  end

という定義ですが、List 方式が導入されたらやはり

(い)
  def collect
    ary = []
    each { |*x|
      ary.push yield(*x)
    }
    ary
  end

と書き換えたくなってしまう。なぜなならこっちのほうがずっときれいだ
(与えられた物をそのまま渡している)から。しかもこう変えることによ
って組み込みクラスに対する collect の動作は(ほとんど)変わらない
というのも(い)にしたくなる理由です。

さらに collect がこうなるなら each_with_index も

(う)
  def each_with_index
    i = 0
    each { |x|
      yield(x, i) #or yield([x, i])
      i += 1
    }
  end

から

(え)
  def each_with_index
    i = 0
    each { |*x|
      yield(*(x + i))
      i += 1
    }
  end

に書き換えたくなるのが人情:-)というもの。ただし(え)の場合は
Hash#each が yield([k, v]) のままならいいが、yield(k, v) と
すると(それが本来の姿ではあるが)非互換になってしまう。よって
yield([k, v]) 方式のままにしておこうか。

、、、という論理だったのです。


話を戻すと、Enumerable のメソッドの定義はそのままで Hash#each は
変える。その方式はありえると思います。気に入らなければユーザーが
再定義すればいいですから。


> 今日、結局穴だらけのままで提出してきました(^^;

おめでとうございます。ruby をいじる時間が減ったりして。:-)

In This Thread