[#837] request SCAN — Shin-ichiro HARA <sinara@...>

原です。

25 messages 1997/11/14
[#838] Re: request SCAN — matz@... (Yukihiro Matsumoto) 1997/11/14

まつもと ゆきひろです

[#839] Re: request SCAN — Shin-ichiro HARA <sinara@...> 1997/11/14

原です。

[#840] Re: request SCAN — Shin-ichiro HARA <sinara@...> 1997/11/14

原です。

[#841] Re: request SCAN — Shin-ichiro HARA <sinara@...> 1997/11/14

原です。

[#843] Re: request SCAN — matz@... (Yukihiro Matsumoto) 1997/11/14

まつもと ゆきひろです

[#844] Re: request SCAN — Shin-ichiro HARA <sinara@...> 1997/11/14

原です。

[#845] Re: request SCAN — matz@... (Yukihiro Matsumoto) 1997/11/14

まつもと ゆきひろです

[#864] [Req] Proc.new — Shin-ichiro HARA <sinara@...>

原です。

53 messages 1997/11/19
[#865] Re: [Req] Proc.new — matz@... (Yukihiro Matsumoto) 1997/11/19

まつもと ゆきひろです

[#866] Re: [Req] Proc.new — Shin-ichiro HARA <sinara@...> 1997/11/19

原です。

[#867] Re: [Req] Proc.new — matz@... (Yukihiro Matsumoto) 1997/11/19

まつもと ゆきひろです

[#875] Re: [Req] Proc.new — Shin-ichiro HARA <sinara@...> 1997/11/20

原です。

[#877] Re: [Req] Proc.new — shugo@... (Shugo Maeda) 1997/11/20

前田です。

[#879] Re: [Req] Proc.new — Shin-ichiro HARA <sinara@...> 1997/11/20

原です。

[#886] Re: [Req] Proc.new — shugo@... (Shugo Maeda) 1997/11/20

前田です。

[#890] Re: [Req] Proc.new — keiju@... (石塚圭樹 ) 1997/11/20

けいじゅ@日本ラショナルソフトウェアです.

[ruby-dev:865] Re: [Req] Proc.new

From: matz@... (Yukihiro Matsumoto)
Date: 1997-11-19 08:31:29 UTC
List: ruby-dev #865
まつもと ゆきひろです

In message "[ruby-dev:864] [Req] Proc.new"
    on 97/11/19, Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp> writes:

|原です。
|
|思いつきシリーズです。
|
|却下するのに特に理由を明確にする事を求めるものでは
|ありません。:-)
|
|(1)Proc.new(x) で Proc.new{|t| send(x, *t)}
|みたいな意味にしてしまうのはいかが?

意味がひとめで分からないんで,却下 ^^;;;

|(2)foo() で、メソッド foo が定義されていない時 foo.call()
|を呼び出してしまうのはどうでしょう?

構文的にはきれいですが,動作が複雑だなあ.どうしよう.

|(3)今見つけました。バグかも。
|
|foo = Proc.new { |*x| p x }
|foo.call()
|
|bar = Proc.new { |x| p x }
|bar.call()
|
|とすると nil, FALSE となりますが、これは [], [] が正しいのでは?

そうですねえ.今ソースを見るとわざわざそうしているんですね.
なんでこうしているのかよく思い出せないのですが(アルツハイマー
か?),おそらくは1引数の時の挙動をイテレータよりも関数に合わ
せたかったのではないかと推測します.この手当をしないと
bar.call(1)でxが[1]になってしまいますから.

でも,foo.callは [] の方が嬉しいよなあ.これまたどうしよう.

|def baz(*x); yield(*x); end
|
|とすると core dump します。

これは間違いなくバグです.

--- parse.y~	Tue Sep 30 10:09:45 1997
+++ parse.y	Wed Nov 19 17:20:22 1997
@@ -697,3 +697,4 @@
 		    {
-			$$ = $2;
+			value_expr($2);
+			$$ = NEW_LIST($2);
 		    }

In This Thread