[#7968] array .{first, last, at} — Kazunori NISHI <kazunori@...>

西@九大です。

25 messages 1999/10/07
[#7969] Re: array .{first, last, at} — nobu.nakada@... 1999/10/07

なかだです。

[#7983] Re: array .{first, last, at} — Kazunori NISHI <kazunori@...> 1999/10/12

西@九大です。

[#7984] Re: array .{first, last, at} — matz@... (Yukihiro Matsumoto) 1999/10/12

まつもと ゆきひろです

[#7985] [patch] Array#delete_at w/ minus value — EGUCHI Osamu <eguchi@...> 1999/10/12

えぐち@エスアンドイーです。

[ruby-dev:8100] Re: [ruby-list:17940] Enumerable#collect

From: EGUCHI Osamu <eguchi@...>
Date: 1999-10-23 13:07:33 UTC
List: ruby-dev #8100
えぐち@エスアンドイー です。

>>> In message [ruby-dev:8098] Re: [ruby-list:17940] Enumerable#collect
    On Sat, 23 Oct 1999 19:05:01 +0900, Takashi Ikeda <cercine@kcn.ne.jp> said:

cercine> 池田孝志です。
cercine> 
cercine> nobu.nakada@nifty.ne.jp writes:
cercine> 
cercine> > なかだです。
cercine> > 
cercine> > At Sat, 23 Oct 1999 03:48:37 +0900,
cercine> > Takashi Ikeda <cercine@kcn.ne.jp> wrote:
cercine> > > ソースに落せと言われても分かりません。フォローお願いしますm(__)m
cercine> > 
cercine> >   こんな感じでしょうか。
cercine> 
cercine> おお。素晴らしい…。

#う゛、先を越されちゃった。

なるほど、これだと、

	return self.dup if self.is_a? Array

に相当する部分が、がありませんが、
ここの dup の必要性は議論の余地がありますね。
ここに dup が要るのであれば、 Array#to_a にも
dup が要る様な気がします。

あと、
	array.c (rb_ary_dup)

が static なので、実現しようとすると、
ちょっと遠回りになりますね。

cercine> >   iterator? でないときは Enumerable#to_a と等価ということでよいの
cercine> > ですよね?
cercine> 
cercine> はい。しかしそんなものがあるとは思わなかった…(__; とすると、
cercine> 名前の問題なのでしょうか。

名前の問題でもあるのですが、
to_a に ブロックを渡すと言う発想は今までなかったわけで、
collect なのか to_a なのかとは別に、有用な機能だと思います。

さらに to_a の議論を発展させると、全てのクラスの to_a にブロックを渡し、
(今まで暗黙だった)配列化の実装をユーザの裁量に任せると言う事も、
状況によっては、有意義だと思います。

また、さらに拡大すると、to_i, to_f や to_s にブロックを渡すのも、、、
、、ここまでイテレータにするとやりすぎ?

	えぐち

In This Thread