[#1371] Re: [ruby-list:6104] Re: パースエラー等の嵐を Dos窓で受けるには ...? — Masao Kanemitsu <masao-k@...>
<9801290711.AA10183@pbsun10.pb.ascii.co.jp> の、
[#1381] bound method — shugo@... (Shugo Maeda)
前田です。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
前田です。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#1386] downcase — Shin-ichiro HARA <sinara@...>
原です。
原です。
[#1410] GD — Masao Kanemitsu <masao-k@...>
まつもと ゆきひろです
わたなべです.
<199802100623.PAA03533@eban.ase.ptg.sony.co.jp> の、
わたなべです.
<199802100733.QAA04028@eban.ase.ptg.sony.co.jp> の、
わたなべです.
<199802100757.QAA04212@eban.ase.ptg.sony.co.jp> の、
わたなべです.
<199802100952.SAA04346@eban.ase.ptg.sony.co.jp> の、
わたなべです.
<199802120449.NAA00398@eban.ase.ptg.sony.co.jp> の、
わたなべです.
<199802120600.PAA00591@eban.ase.ptg.sony.co.jp> の、
わたなべです.
<199802120717.QAA00774@eban.ase.ptg.sony.co.jp> の、
> Windows 95では、GDだけロードエラーに。(3台で確認)
[#1412] GD — Masao Kanemitsu <masao-k@...>
まつもと ゆきひろです
<199802100636.PAA16869@picachu.netlab.co.jp> の、
[#1468] tcltk library — Masao Kanemitsu <masao-k@...>
[#1481] tkmandel — Masao Kanemitsu <masao-k@...>
[#1483] 拡張モジュール on Windows — Masao Kanemitsu <masao-k@...>
わたなべです.
[#1501] Re: 拡張モジュールon Windows — Masao Kanemitsu <masao-k@...>
> <199802180824.RAA20375@eban.ase.ptg.sony.co.jp> の、
[#1505] final.rb:35: [BUG] bug in variable assignment — shugo@... (Shugo Maeda)
前田です。
[#1506] [BUG] instance_of? — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#1520] SizedQueue and some question — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#1528] Mutex#unlock — shugo@... (Shugo Maeda)
前田です。
[ruby-dev:1463] iterator block passing (Re: rgrep)
前田です。
In message "[ruby-list:6423] Re: rgrep (Re: call for scripts)"
Yukihiro Matsumoto <matz@netlab.co.jp> wrote:
|イテレータブロックをそのまま引き渡す
|
| {|x| yield x}
|
|の代わりになる記号があれば良いのだろうと思うのですが,なかな
|か良いのが思い付きません.
|
| foreach_files(path) xxx
|
|のxxxの部分に来るいかにもそれらしいもの(出来れば予約語でない
|方が望ましいが,予約語でも良い)が,あれば良いのですが….
なかなか良い記号や名前はなさそうですね。
文法拡張はせずに、
obj.pass_block(:itername, args...)
というメソッドを用意する、というのはどうでしょう。
--
前田 修吾
Attachments (1)
--- eval.c.orig Mon Feb 16 12:18:24 1998
+++ eval.c Mon Feb 16 12:29:27 1998
@@ -3396,6 +3396,35 @@
return vid;
}
+static VALUE
+f_pass_block(argc, argv, recv)
+ int argc;
+ VALUE *argv;
+ VALUE recv;
+{
+ VALUE vid;
+ ID mid;
+
+ if (argc == 0) ArgError("no iterator name given");
+ if (iterator_p())
+ ArgError("iterator block given to pass_block");
+ if (!f_iterator_p())
+ ArgError("pass_block called out of iterator");
+
+ vid = argv[0]; argc--; argv++;
+ if (TYPE(vid) == T_STRING) {
+ mid = rb_intern(RSTRING(vid)->ptr);
+ }
+ else {
+ mid = NUM2INT(vid);
+ }
+ PUSH_ITER(ITER_PRE);
+ vid = rb_call(CLASS_OF(recv), recv, mid, argc, argv, 1);
+ POP_ITER();
+
+ return vid;
+}
+
#include <varargs.h>
VALUE
@@ -4248,6 +4277,7 @@
rb_define_global_function("global_variables", f_global_variables, 0);
rb_define_method(mKernel, "send", f_send, -1);
+ rb_define_method(mKernel, "pass_block", f_pass_block, -1);
rb_define_method(mKernel, "instance_eval", obj_instance_eval, 1);
rb_define_private_method(cModule, "append_features", mod_append_features, 1);