From: nobu.nakada@... Date: 2002-03-16T14:48:03+09:00 Subject: [ruby-list:34449] Re: [ruby-dev:16423] Re: Re: Enumerable#inject(Re: しぶらぐっ議事録。) なかだです。 At Sat, 16 Mar 2002 09:04:58 +0900, Koji Arai wrote: > 知らなかったんですが、Python の reduce は、初期値を指定でき > ますね。で、ruby でどうするか?ですが > > 1. Enumerable#inject を Enumerable#reduce にし、初期値を省略可にする > 2. Enumerable#inject が初期値を省略できるようにする > 3. 現状維持 > > 私的には名前はそのままでもいいのではないかと、ですから 2 で > 良いように思います。 > > 取り込まれやすさを狙ってパッチをつけてみます。 (snip) > - 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; > } 細かいことですが、このほうがいいのではないかと。 + rb_iterate(rb_each, obj, inject_i, (VALUE)memo); + n = memo->u1.value; + + rb_gc_force_recycle((VALUE)memo); return n; } -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦