[#13493] yield *[[]] — Tanaka Akira <akr@...17n.org>

しばらく前に、yield *[[]] の挙動に関して bug report をして、まつもとさ

96 messages 2001/06/07
[#13494] Re: yield *[[]] — nobu.nakada@... 2001/06/07

なかだです。

[#13496] Re: yield *[[]] — Tanaka Akira <akr@...17n.org> 2001/06/08

In article <200106071409.XAA21101@sharui.nakada.kanuma.tochigi.jp>,

[#13503] Re: yield *[[]] — matz@... (Yukihiro Matsumoto) 2001/06/08

まつもと ゆきひろです

[#13506] Re: yield *[[]] — Tanaka Akira <akr@...17n.org> 2001/06/08

In article <991988462.179562.20598.nullmailer@ev.netlab.zetabits.com>,

[#13512] Re: yield *[[]] — matz@... (Yukihiro Matsumoto) 2001/06/08

まつもと ゆきひろです

[#13497] Re: yield *[[]] — Shugo Maeda <shugo@...> 2001/06/08

前田です。

[#13500] Re: yield *[[]] — "K.Kosako" <kosako@...> 2001/06/08

Shugo Maedaさんの<87lmn336s3.wl@localhost.netlab.jp>から

[#13501] Re: yield *[[]] — Shugo Maeda <shugo@...> 2001/06/08

前田です。

[#13504] Re: yield *[[]] — "K.Kosako" <kosako@...> 2001/06/08

Shugo Maedaさんの<87hexr316u.wl@localhost.netlab.jp>から

[#13505] Re: yield *[[]] — Shugo Maeda <shugo@...> 2001/06/08

前田です。

[#13511] Re: yield *[[]] — matz@... (Yukihiro Matsumoto) 2001/06/08

まつもと ゆきひろです

[#13526] Re: yield *[[]] — Shugo Maeda <shugo@...> 2001/06/09

前田です。

[#13530] Re: yield *[[]] — Tanaka Akira <akr@...17n.org> 2001/06/09

In article <m38zj242y9.wl@localhost.localdomain>,

[#13549] Re: yield *[[]] — Shin-ichiro HARA <sinara@...> 2001/06/12

原です。

[#13553] Re: yield *[[]] — Tanaka Akira <akr@...17n.org> 2001/06/12

In article <4.3.2-J.20010612154813.02c89a70@blade.nagaokaut.ac.jp>,

[#13554] Re: yield *[[]] — Shin-ichiro HARA <sinara@...> 2001/06/12

原です。

[#13560] Re: yield *[[]] — Tanaka Akira <akr@...17n.org> 2001/06/13

In article <4.3.2-J.20010612185543.00c8b988@blade.nagaokaut.ac.jp>,

[#13567] Parallel Assignment — Shin-ichiro HARA <sinara@...> 2001/06/13

原です。

[#13577] Re: Parallel Assignment — matz@... (Yukihiro Matsumoto) 2001/06/13

まつもと ゆきひろです

[#13561] Re: yield *[[]] — matz@... (Yukihiro Matsumoto) 2001/06/13

まつもと ゆきひろです

[#13566] Re: yield *[[]] — Tanaka Akira <akr@...17n.org> 2001/06/13

In article <992410104.066682.22743.nullmailer@ev.netlab.zetabits.com>,

[#13591] Re: yield *[[]] — Tanaka Akira <akr@...17n.org> 2001/06/14

In article <hvor8wo501g.fsf@flux.etl.go.jp>,

[#13597] Re: yield *[[]] — matz@... (Yukihiro Matsumoto) 2001/06/14

まつもと ゆきひろです

[#13598] Re: yield *[[]] — Tanaka Akira <akr@...17n.org> 2001/06/15

In article <992533086.935976.4066.nullmailer@ev.netlab.zetabits.com>,

[#13616] Re: yield *[[]] — matz@... (Yukihiro Matsumoto) 2001/06/19

まつもと ゆきひろです

[#13622] Re: yield *[[]] — matz@... (Yukihiro Matsumoto) 2001/06/22

まつもと ゆきひろです

[#13628] Re: yield *[[]] — matz@... (Yukihiro Matsumoto) 2001/06/23

まつもと ゆきひろです

[#13633] Re: yield *[[]] — keiju@... (石塚圭樹) 2001/06/24

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

[#13647] Re: yield *[[]] — "KANEMITSU Masao" <masao-k@...> 2001/06/25

金光です。

[#13650] Re: [ruby-ext:01803] Re: Ruby/SDL on PS2 LinuxKit — WATANABE Hirofumi <eban@...>

わたなべです。

56 messages 2001/06/26
[#13653] Re: [ruby-ext:01803] Re: Ruby/SDL on PS2 LinuxKit — matz@... (Yukihiro Matsumoto) 2001/06/26

まつもと ゆきひろです

[#13659] library search path — matz@... (Yukihiro Matsumoto) 2001/06/26

まつもと ゆきひろです

[#13906] Re: library search path — nobu.nakada@... 2001/07/16

なかだです。

[#13978] Re: library search path — nobu.nakada@... 2001/07/21

なかだです。

[#13990] Re: library search path — matz@... (Yukihiro Matsumoto) 2001/07/22

まつもと ゆきひろです

[#14002] Re: library search path — nobu.nakada@... 2001/07/23

なかだです。

[#14011] Re: library search path — matz@... (Yukihiro Matsumoto) 2001/07/23

まつもと ゆきひろです

[#14017] Re: library search path — "U.Nakamura" <usa@...> 2001/07/24

こんにちは、なかむら(う)です。

[#14020] Re: library search path — matz@... (Yukihiro Matsumoto) 2001/07/24

まつもと ゆきひろです

[#14036] Re: library search path — nobu.nakada@... 2001/07/24

なかだです。

[#14075] Re: library search path — nobu.nakada@... 2001/07/25

なかだです。

[#14079] Re: library search path — matz@... (Yukihiro Matsumoto) 2001/07/25

まつもと ゆきひろです

[#14090] Re: library search path — nobu.nakada@... 2001/07/25

なかだです。

[#14095] Re: library search path — matz@... (Yukihiro Matsumoto) 2001/07/26

まつもと ゆきひろです

[#14115] Re: library search path — akira yamada / やまだあきら <akira@...> 2001/07/26

[#14121] Re: library search path — matz@... (Yukihiro Matsumoto) 2001/07/26

まつもと ゆきひろです

[#14136] Re: library search path — matz@... (Yukihiro Matsumoto) 2001/07/27

まつもと ゆきひろです

[#14137] Re: library search path — nobu.nakada@... 2001/07/27

なかだです。

[#14138] Re: library search path — matz@... (Yukihiro Matsumoto) 2001/07/27

まつもと ゆきひろです

[#14141] Re: library search path — nobu.nakada@... 2001/07/27

なかだです。

[#14142] Re: library search path — matz@... (Yukihiro Matsumoto) 2001/07/27

まつもと ゆきひろです

[#14148] Re: library search path — nobu.nakada@... 2001/07/28

なかだです。

[#13666] net/http.rb warnings — nobu.nakada@...

なかだです。

14 messages 2001/06/26

[#13668] ruby_m17n make error — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

43 messages 2001/06/26
[#14038] Re: m17n ruby 特に TRON 文字コード — "TOYOFUKU Chikanobu" <toyofuku@...> 2001/07/24

豊福です。

[#13705] eval(code, true, filename) — Shugo Maeda <shugo@...>

前田です。

14 messages 2001/06/29

[ruby-dev:13561] Re: yield *[[]]

From: matz@... (Yukihiro Matsumoto)
Date: 2001-06-13 05:28:25 UTC
List: ruby-dev #13561
まつもと ゆきひろです

In message "[ruby-dev:13560] Re: yield *[[]]"
    on 01/06/13, Tanaka Akira <akr@m17n.org> writes:

|2度あることは 3度あるというわけで、ぜったいあると思います。

ま、そうかもしれませんね。それでも構わないと思ってますが。
3度目くらいの蒸し返しで採用された例もあるし。

|前田さんの提案が採用されれば別ですが。

その後つらつらと考えたのですが、やはりCommon Lisp流多値はい
くつか(Ruby的には)問題があるようです。

  * 互換性

    というのは当然としても、

  * 主値と副値

    通常の代入では主値しか与えないというのは、意外に使いにく
    いような。Common Lispでもあまり活用されてないみたい。

  * a,b,c = 1..3みたいのは意外に便利

    to_aryを活用したものが使えなくなるでしょうね。あるいは
    Perlみたいにコンテキストによって違うものを返すようにする
    (wantarrayみたいのが必要ですね)ということも考えられない
    でもないですが、より複雑ですね。

|私のは少々修正が必要ですが、基本的に多重代入本体はそれで決定で、残りは
|Proc まわり、とまつもとさんは思っていると想像しています。

高知への電車の中で考えました。

実は、[1,2],*[]の件から触発されて、もしかしたら田中さんの案
である、*r == [*r] の方が使いやすいかもと考えたので、A4用紙
2枚程度にいろいろな組み合わせを書いてみました。

すると、単純代入と多重代入の範囲内だけでは、田中案の方がはる
かにきれいなことが(ほとんど自明ですが)、確認できました。

しかし、procと組み合わせると少々事情が違いました。

  proc{|a| p a}.call(*[1])

は a = *[1] とのからみがあるので、田中案での適切な値はどう考
えても [1] です。しかし、実際問題として、この状況で[1]を与え
るのは、今度は他のメソッド呼び出しとの整合性から見て妙です。

  method(:p).call(*[1]) # => 1 (not [1])

ですから、上記のaの値は1であって欲しいように思います。となる
と、結局これを満足させるのは、私の案しかないように思います。

これは|a|が、どう見ても単一の引数(つまり|a,|)のように見える
ことが原因なのですが、これは私にはどうすることもできません。

|が、私はもうすこしあがいてみるつもりです。その仕様が本当に互換性が高い
|のかという話と、型の話がネタです。まぁ、変える気になってくれるかどうか
|はわかりませんが。
|# net/http.rb という例も見つけてしまったし。

私の案でも過去とは挙動が明らかに違うんで、互換性に問題がある
のは確かだと思います。そういう観点からは、私のものと田中さん
のものとには差はないと思います。前田さんのは本人も認めている
通り、ちょっと違いが大きすぎるでしょうけど。

型の観点からは、「唯一の式の値がたまたま配列だったばっかりに
意図せず展開されてしまう」という問題がありえます。が、それも
明示的に *r とした場合の話でしょうから、影響はそれほど大きく
ないのではと推測しています。

net/http.rbの例はまだ知らないんで、私の見落としている穴があ
る可能性もありますね。

                                まつもと ゆきひろ /:|)

In This Thread