[#34139] cygwin から mswin32 へそれと高速化 require — "井上 浩一" <kyoui32@...>
井上です。
[#34150] Ruby1.6.7 について — Nagai T <idonagai@...>
どうも、Tnagaiです。
[#34169] File#dirname( filename , deep=1 ) — Take_tk <ggb03124@...>
File#dirname( filename , deep=1 )
[#34173] 「プログラミング Ruby 」 p.247 グローバル変数 — Noritsugu Nakamura <nnakamur@...>
[#34188] 1.6 系から 1.7 系へ以降する際の注意 (mswin32 版について) — "井上 浩一" <kyoui32@...>
[#34198] ruby 1.6.7 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
In message <1015305748.444543.10114.nullmailer@ev.netlab.jp>
[#34204] 「プログラミング Ruby 」 p.257 defined? はメソッド? — Noritsugu Nakamura <nnakamur@...>
なかだです。
山本です。こんにちは。
[#34207] RWiki CGI log fails — dellin <dellin@...>
dellinです。
[#34225] [mswin32] accessing SIGHUP causes invalid signal error — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです。
こんにちは、なかむら(う)です。
なひです。こういう展開になるんだったらruby-devでしたね。。。
こんにちは、なかむら(う)です。
[#34241] Re: 1.6 系から 1.7 系へ以降する際の注意 (mswin32 版について) — "井上 浩一" <kyoui32@...>
井上です。
[#34244] しぶらぐっ議事録。 — rubiben <ozaki@...>
From: rubiben <ozaki@ruby-lang.org>
るびべんです。
From: rubiben <ozaki@ruby-lang.org>
どうも西尾です。
新井です。
From: Koji Arai <JCA02266@nifty.ne.jp>
新井です。
まつもと ゆきひろです
あおきです。
るびべんです。
[#34319] require "cgi/session" でエラー — FUJIOKA Takeyuki <fujioka@...>
はじめまして,藤岡と申します。
藤岡です。
[#34337] erb-1.4.0 — m_seki@...
[#34374] Ruby オプション — "井上 浩一" <kyoui32@...>
井上
[#34376] Re: 多種多様の文字コードに対応するには? — "井上 浩一" <kyoui32@...>
井上です。
[#34393] Re: Ruby オプション — "井上 浩一" <kyoui32@...>
井上です。
In article <F249zDabigPasSmz6Uu0000ec21@hotmail.com>,
[#34410] Re: Ruby オプション — "井上 浩一" <kyoui32@...>
井上です。
[#34425] [ANN] Ruby/zlib 0.5.0 — UENO Katsuhiro <unnie@...>
うえのです。
[#34434] begin-rescue の ruby バージョンごとの挙動について — Kengo Nakajima <ringo@...>
こんにちは
[#34448] 文字コード混在スクリプトの実行 — Noritsugu Nakamura <nnakamur@...>
[#34453] カレンダー文字列を作るメソッド — Take_tk <ggb03124@...>
たけ(tk)です。
[#34456] 再帰の限度 (Mac OS X) — Hiroyuki KUROSAKI <noir@...>
iBook を購入したので、さっそく Ruby 1.6.7 をインストールして
On Sat, 16 Mar 2002 21:19:10 +0900, in message
[#34481] Ruby お花見@大阪 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#34491] ruby-dev summary 16201-16300 — rubiben <ozaki@...>
るびべんです。
[#34498] cgi.rb でマルチパートでの実験方法 — FUJIOKA Takeyuki <fujioka@...>
藤岡です。
[#34500] ライブラリの著作権について — rubiben <ozaki@...>
るびべん です。本職での登場です(笑)。
rubibenさんの<20020319153000.F31A.OZAKI@ruby-lang.org>から
[#34529] gsub! /(^|[^0-9])(?=[a-z])/ — "TOYOFUKU Chikanobu" <toyofuku@...>
豊福です。
[#34534] スクリプティング言語における GPL — Taku Nakajima <tnakajima@...>
中島@ブレーンです。
るびべんです。#最近本業での登場回数が多いなぁ(^^;;
中島@ブレーンです。
At Thu, 21 Mar 2002 14:29:14 +0900,
中島@ブレーンです。
[#34552] Re: 1.7 に関して — "井上 浩一" <kyoui32@...>
井上です。
こんにちは、なかむら(う)です。
高橋征義です。
はじめまして、りゅうです。
[#34570] cgi.rb+ イテレータ — FUJIOKA Takeyuki <fujioka@...>
藤岡です。
At Fri, 22 Mar 2002 17:22:10 +0900,
[#34599] [ANN] リファレンスマニュアル (Plucker format) — rubikitch <rubikitch@...>
るびきちです。
[#34609] エラーメッセージ "odd number list for Hash" — cyross@...
お久しぶりです。サイロス誠です。
[#34618] begin expr with while_mod/until_mod — FUKUBAYASHI Ippei <ippei@...>
壱平ともうします。最近Rubyで遊ばせていただいています。
[#34628] RubyでのCookie使用について — cyross@...
たびたび失礼します、サイロスです。
[#34630] [Q]druby のサーバを Web 上から起動 / 停止する — eda@...
えだです。
[#34640] scan(/(\d)?a?(\d)?b?/) — TOYOFUKU Chikanobu <toyofuku@...>
豊福です。
[#34652] erb 1.4.2 failed — TADA Tadashi <sho@...>
ただただしです。
[#34676] 安心できる Marshal と、 Ruby バージョンの検査法 — MALTA Koji <malta@...>
丸田と申します。
新井です。
丸田です。 MarshalとRUBY_VERSIONの話題を分離します。
まつもと ゆきひろです
わたなべです。
At Mon, 1 Apr 2002 16:06:23 +0900,
わたなべです。
丸田です。
ひだかです。
丸田です。
まつもと ゆきひろです
なひです。
新井です。
こんにちは、なかむら(う)です。
In article <20020404095542.7155.USA@osb.att.ne.jp>,
わたなべです。
[#34681] 書籍に関する質問です — Nobuhide Kanagawa <nobuhide@...>
こんにちわ。
なかだです。
岩井です。
[ruby-list:34444] Re: Enumerable#inject (Re: しぶらぐっ議事録。)
新井です。
ruby-dev に行ってみます。
In message "[ruby-list:34301] Re: Enumerable#inject (Re:しぶらぐっ議事録。)"
on 11 Mar 2002 12:58:59 +0900,
matz@ruby-lang.org (Yukihiro Matsumoto) wrote:
> まつもと ゆきひろです
>
> In message "[ruby-list:34276] Re: Enumerable#inject (Re: しぶらぐっ議事録。)"
> on 02/03/10, Koji Arai <JCA02266@nifty.ne.jp> writes:
>
> |Python ではそうですね。しかし、やっぱり名前問題になるんです
> |ねえ。
>
> それがすべての問題の本質だからです。
あっ、別に否定的な気持ちで言ったわけではないです。念のため。
知らなかったんですが、Python の reduce は、初期値を指定でき
ますね。で、ruby でどうするか?ですが
1. Enumerable#inject を Enumerable#reduce にし、初期値を省略可にする
2. Enumerable#inject が初期値を省略できるようにする
3. 現状維持
私的には名前はそのままでもいいのではないかと、ですから 2 で
良いように思います。
取り込まれやすさを狙ってパッチをつけてみます。
Index: enum.c
===================================================================
RCS file: /usr/local/cvsup/ruby/ruby/enum.c,v
retrieving revision 1.22
diff -u -p -r1.22 enum.c
--- enum.c 11 Mar 2002 08:02:02 -0000 1.22
+++ enum.c 15 Mar 2002 23:57:41 -0000
@@ -180,21 +180,37 @@ enum_collect(obj)
}
static VALUE
-inject_i(i, np)
+inject_i(i, memo)
VALUE i;
- VALUE *np;
+ NODE *memo;
{
- *np = rb_yield(rb_assoc_new(*np, i));
+ if (memo->u2.value) {
+ memo->u2.value = Qfalse;
+ memo->u1.value = i;
+ }
+ else
+ memo->u1.value = rb_yield(rb_assoc_new(memo->u1.value, i));
+
return Qnil;
}
static VALUE
-enum_inject(obj, n)
- VALUE obj, n;
+enum_inject(argc, argv, obj)
+ int argc;
+ VALUE *argv, obj;
{
- rb_iterate(rb_each, obj, inject_i, (VALUE)&n);
+ NODE *memo;
+ VALUE n;
- return n;
+ if (rb_scan_args(argc, argv, "01", &n) == 1)
+ memo = rb_node_newnode(NODE_MEMO, n, Qfalse, 0);
+ else
+ memo = rb_node_newnode(NODE_MEMO, Qnil, Qtrue, 0);
+
+ rb_iterate(rb_each, obj, inject_i, (VALUE)memo);
+
+ rb_gc_force_recycle((VALUE)memo);
+ return memo->u1.value;
}
static VALUE
@@ -448,7 +464,7 @@ Init_Enumerable()
rb_define_method(rb_mEnumerable,"reject", enum_reject, 0);
rb_define_method(rb_mEnumerable,"collect", enum_collect, 0);
rb_define_method(rb_mEnumerable,"map", enum_collect, 0);
- rb_define_method(rb_mEnumerable,"inject", enum_inject, 1);
+ rb_define_method(rb_mEnumerable,"inject", enum_inject, -1);
rb_define_method(rb_mEnumerable,"all?", enum_all, 0);
rb_define_method(rb_mEnumerable,"any?", enum_any, 0);
rb_define_method(rb_mEnumerable,"min", enum_min, 0);
--
新井康司 (Koji Arai)