[#7954] Doesn't build on Alpha — akira yamada / やまだあきら <akira@...>
8 messages
1999/10/02
[#7956] Re: Doesn't build on Alpha
— Shugo Maeda <shugo@...>
1999/10/02
前田@ruby-lang.org用のサーバ構築中です。
[#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
えぐち@エスアンドイーです。
[#8037] no bang method always returned unique?
— EGUCHI Osamu <eguchi@...>
1999/10/16
えぐち@エスアンドイーです。
[#8041] Re: no bang method always returned unique?
— matz@... (Yukihiro Matsumoto)
1999/10/16
まつもと ゆきひろです
[#8043] Re: no bang method always returned unique?
— EGUCHI Osamu <eguchi@...>
1999/10/17
えぐち@エスアンドイー です。
[#7991] Re: [patch] Array#delete_at w/ minus value
— matz@... (Yukihiro Matsumoto)
1999/10/13
まつもと ゆきひろです
[#7994] Re: [patch] Array#delete_at w/ minus value
— EGUCHI Osamu <eguchi@...>
1999/10/13
えぐち@エスアンドイー です。
[#7995] Re: [patch] Array#delete_at w/ minus value
— matz@... (Yukihiro Matsumoto)
1999/10/13
まつもと ゆきひろです
[#7996] Re: [patch] Array#delete_at w/ minus value
— EGUCHI Osamu <eguchi@...>
1999/10/13
えぐち@エスアンドイー です。
[#7997] Re: [patch] Array#delete_at w/ minus value
— matz@... (Yukihiro Matsumoto)
1999/10/13
まつもと ゆきひろです
[#7998] Re: [patch] Array#delete_at w/ minus value
— EGUCHI Osamu <eguchi@...>
1999/10/13
えぐち@エスアンドイー です。
[#7972] socket.c Socket::Constants SOL_TCP — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
5 messages
1999/10/10
[#7974] [CYGWIN] bug? system() and socket — Shin-ichiro Hara <sinara@...>
原です。
5 messages
1999/10/10
[#7990] socks5 — とみたまさひろ <tommy@...>
とみたです。
16 messages
1999/10/12
[#7992] Re: socks5
— matz@... (Yukihiro Matsumoto)
1999/10/13
まつもと ゆきひろです
[#8003] Re: socks5
— とみたまさひろ <tommy@...>
1999/10/13
とみたです。
[#8004] Re: socks5
— matz@... (Yukihiro Matsumoto)
1999/10/13
まつもと ゆきひろです
[#8014] Re: socks5
— とみたまさひろ <tommy@...>
1999/10/13
とみたです。
[#8026] Re: socks5
— matz@... (Yukihiro Matsumoto)
1999/10/15
まつもと ゆきひろです
[#7993] prime numbers at st.c — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです.
2 messages
1999/10/13
[#8005] signal.c in cvs — Masaki Fukushima <fukusima@...>
福嶋です。
6 messages
1999/10/13
[#8020] [PATCH] Win32API — WATANABE Hirofumi <eban@...>
わたなべです.
9 messages
1999/10/14
[#8033] rb_compile_string and rb_load_protect — Masaki Suketa <CQN02273@...>
助田です.
6 messages
1999/10/16
[#8036] Re: rb_compile_string and rb_load_protect
— matz@... (Yukihiro Matsumoto)
1999/10/16
まつもと ゆきひろです
[#8038] [patch] build on sunos4 w/ VPATH fail — EGUCHI Osamu <eguchi@...>
えぐち@エスアンドイー です。
7 messages
1999/10/16
[#8045] signal exception semantics — nobu.nakada@...
なかだです。
7 messages
1999/10/17
[#8048] non terminated string — Minero Aoki <aamine@...>
あおきです。
5 messages
1999/10/17
[#8051] error.c for latest cygwin — WATANABE Hirofumi <eban@...>
わたなべです.
11 messages
1999/10/17
[#8053] Re: error.c for latest cygwin
— matz@... (Yukihiro Matsumoto)
1999/10/18
まつもと ゆきひろです
[#8157] Re: error.c for latest cygwin
— Katsuyuki Komatsu <komatsu@...>
1999/11/01
小松です。
[#8060] Re: [ruby-list:17813] Re: Exception.html & Errno.html for ruby-man-1.4.2-jp — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです.そろそろruby-dev?
4 messages
1999/10/19
[#8078] [patch] File.lchmod and File.lchown — EGUCHI Osamu <eguchi@...>
えぐち@エスアンドイーです。
7 messages
1999/10/20
[#8080] Re: [patch] File.lchmod and File.lchown
— matz@... (Yukihiro Matsumoto)
1999/10/21
まつもと ゆきひろです
[#8081] Re: [patch] File.lchmod and File.lchown
— EGUCHI Osamu <eguchi@...>
1999/10/21
えぐち@エスアンドイー です。
[#8082] Ruby 1.4.2 with Tcl/Tk 8.2 — akira yamada / やまだあきら <akira@...>
9 messages
1999/10/21
[#8129] Re: Ruby 1.4.2 with Tcl/Tk 8.2
— akira yamada / やまだあきら <akira@...>
1999/10/28
[#8090] Re: [ruby-list:17940] Enumerable#collect — Takashi Ikeda <cercine@...>
池田孝志です。
11 messages
1999/10/22
[#8097] Re: [ruby-list:17940] Enumerable#collect
— nobu.nakada@...
1999/10/23
なかだです。
[#8098] Re: [ruby-list:17940] Enumerable#collect
— Takashi Ikeda <cercine@...>
1999/10/23
池田孝志です。
[#8100] Re: [ruby-list:17940] Enumerable#collect
— EGUCHI Osamu <eguchi@...>
1999/10/23
えぐち@エスアンドイー です。
[#8106] Re: [ruby-list:17940] Enumerable#collect
— matz@... (Yukihiro Matsumoto)
1999/10/23
まつもと ゆきひろです
[#8091] named argument? — ttate@...
立石です。
7 messages
1999/10/22
[#8108] Re: [ruby-list:17963] Re: bug? system — ttate@...
立石です。
5 messages
1999/10/23
[#8137] multiple conditional switch — kjana@... (YANAGAWA Kazuhisa)
♪昨日手紙が.... じゃなくて (^^; 今日 ruby 本が届きました.どうもあり
8 messages
1999/10/29
[#8152] Ruby 1.5 (cvs) irb, cgi.rb — Wakou Aoyama <wakou@...>
青山です。
5 messages
1999/10/30
[ruby-dev:8127] Re: [ruby-list:17940] Enumerable#collect
From:
EGUCHI Osamu <eguchi@...>
Date:
1999-10-27 06:47:22 UTC
List:
ruby-dev #8127
えぐち@エスアンドイー です。
>>> In message [ruby-dev:8123] Re: [ruby-list:17940] Enumerable#collect
On Wed, 27 Oct 1999 00:29:28 +0900, Takashi Ikeda <cercine@kcn.ne.jp> said:
cercine> 池田孝志です。
cercine>
cercine> 僕の言った事に対してだけ返答します。
cercine>
cercine> EGUCHI Osamu <eguchi@shizuokanet.ne.jp> writes:
cercine>
cercine> > えぐち@エスアンドイー です。
...
cercine> > この、 『Array#to_a にもdup が要る様な気がします。』は、
cercine> >
cercine> > % ruby -v
cercine> > ruby 1.4.2 (1999-09-18) [i386-freebsd3.3]
cercine> > % ruby -e 'a=[];b=a.to_a;p a.equal? b'
cercine> > →true
cercine> > %
cercine> >
cercine> > の様な状況の事を言っています。
cercine> >
cercine> > あと、大概の to_a / collect は新しい Array に push しているので、
cercine> > dup は不要と言うのは同感ですが、
cercine> >
cercine> > return self.dup if self.is_a? Array
cercine> >
cercine> > では、「大概の」ではなく、Array#collect を特別扱いしています。
cercine>
cercine> 大体、[ruby-dev:8090]自体バグっていることはともかく、これを
cercine> 出した段階では、Enumerable#to_aを知らなかったのであえてこう
cercine> していました。意図は汲んでもらえるとして、
了解です。
cercine> > まぁ、効率にしか影響しないし、必ずしも速くなる場合だけでもなようです。
cercine>
cercine> ですが、Array#collectをArray#to_aのdupを取ったものの代わりと
cercine> して利用するには、[ruby-dev:8090]時点の僕には酷でした。
cercine>
cercine> % ruby -v
cercine> ruby 1.4.2 (1999-09-18) [i586-linux]
cercine> % ruby -e '
cercine> a = Array.new(1000_000)
cercine>
cercine> GC.start
cercine> t = Time.now
cercine> a.collect {|e| e }
cercine> p Time.now - t
cercine>
cercine> GC.start
cercine> t = Time.now
cercine> a.to_a
cercine> p Time.now - t
cercine> '
cercine> 279.01583
cercine> 8.6e-05
cercine>
cercine> [ruby-dev:8090]はEnumerable#to_aを知らない段階で作ったので、
cercine> [ruby-dev:8090]のcollectがEnumerable#to_aをdupしたものと同じ
cercine> 結果を出すようにしか考えていません。よってレシーバにArrayが
cercine> やってきたときには、yieldのぶん速くした方がよいのではないか
cercine> という提案でした。
なるほど、、
cercine> 判定でちょっと遅くなるくらいなら、相当遅くなるのを回避した方
cercine> が良いか、と思ったので。
cercine> もちろん、これがあまり要らないと僕が感じている事は、
cercine> [ruby-dev:8090]に書いたとおりです。
Array#to_a が self を返すを是とするので、
この Array をレシーバとした場合の特別扱いは、
不要と結論づけてよいですね。
cercine> Array#to_aでは(ソースとしては)レシーバを返すという仕様がある、
cercine> という点も知らなかったので、えぐちさんが入る前の
cercine> [ruby-dev:8098]で僕は[ruby-dev:8090]のcollectを
cercine> Enumerable#to_aと等価と考えていました。今のto_aから得たオブ
cercine> ジェクトを[ruby-dev:8090]のcollect として動作させるには、dup
cercine> しないといけないようです。[ruby-dev:8090]の*1つ目の*collect
cercine> には、やはりこのような二度手間はさせたくありません。
cercine> # もちろん、僕はArray#to_aをdupさせたいと思ったことは*今も*
cercine> # ありません。
別スレッドで、
bang(名前の終りが '!') なメソッドとそれと対になる
bang でないメソッドがある場合は、
bang な方はレシーバを返し、
bang でない方は新しいインスタンスを返す。
という事に付いての議論があったので、dup する/しないに
ある種のこだわりを、持っていました。
それで dup はそれ自体の実行コストはともかく、GC にやさしくないので、
深刻な問題を起こさない限り、レシーバを返すのが良いかな、、
と今は思っています。
えぐち