[#3587] Multiple assignment at yield() — Shin-ichro Hara <sinara@...>
原です。
86 messages
1998/11/17
[#3588] Re: Multiple assignment at yield()
— matz@... (Yukihiro Matsumoto)
1998/11/17
まつもと ゆきひろです
[#3589] Re: Multiple assignment at yield()
— Shin-ichro Hara <sinara@...>
1998/11/17
原です。
[#3590] Re: Multiple assignment at yield()
— matz@... (Yukihiro Matsumoto)
1998/11/17
まつもと ゆきひろです
[#3594] Re: Multiple assignment at yield()
— Shin-ichro Hara <sinara@...>
1998/11/18
原です。
[#3595] Re: Multiple assignment at yield()
— matz@... (Yukihiro Matsumoto)
1998/11/18
まつもと ゆきひろです
[#3596] Re: Multiple assignment at yield()
— Shin-ichro Hara <sinara@...>
1998/11/18
原です。
[#3598] Re: Multiple assignment at yield()
— matz@... (Yukihiro Matsumoto)
1998/11/19
まつもと ゆきひろです
[#3600] Re: Multiple assignment at yield()
— Shin-ichro Hara <sinara@...>
1998/11/20
原です。
[#3610] Re: Multiple assignment at yield()
— Shin-ichro Hara <sinara@...>
1998/11/20
原です。
[#3611] Re: Multiple assignment at yield()
— matz@... (Yukihiro Matsumoto)
1998/11/20
まつもと ゆきひろです
[#3622] Re: Multiple assignment at yield()
— Shin-ichro Hara <sinara@...>
1998/11/21
原です。
[#3630] Re: Multiple assignment at yield()
— shugo@... (MAEDA Shugo)
1998/11/22
前田です。
[#3635] Re: Multiple assignment at yield()
— Shin-ichiro Hara <sinara@...>
1998/11/23
原です。
[#3658] Re: Multiple assignment at yield()
— matz@... (Yukihiro Matsumoto)
1998/11/24
まつもと ゆきひろです
[#3660] Re: Multiple assignment at yield()
— Shin-ichro Hara <sinara@...>
1998/11/24
原です。
[#3663] Re: Multiple assignment at yield()
— matz@... (Yukihiro Matsumoto)
1998/11/25
まつもと ゆきひろです
[#3667] Re: Multiple assignment at yield()
— Shin-ichro Hara <sinara@...>
1998/11/25
原です。
[#3722] multiple assignment, yield and return
— Shin-ichro Hara <sinara@...>
1998/12/01
原です。
[#3725] Re: multiple assignment, yield and return
— shugo@... (MAEDA Shugo)
1998/12/01
前田です。
[#3724] Re: multiple assignment, yield and return
— Shin-ichro Hara <sinara@...>
1998/12/01
原です。
[#3742] List()
— Shin-ichro Hara <sinara@...>
1998/12/04
原です。
[#3743] Re: List()
— shugo@... (MAEDA Shugo)
1998/12/06
前田です。
[#3744] Re: List()
— Shin-ichiro Hara <sinara@...>
1998/12/06
原です。
[#3755] Re: List()
— shugo@... (MAEDA Shugo)
1998/12/07
前田です。
[#3758] Re: List()
— Shin-ichro Hara <sinara@...>
1998/12/07
原です。
[#3760] Re: List()
— shugo@... (MAEDA Shugo)
1998/12/07
前田です。
[#3761] Re: List()
— Shin-ichiro Hara <sinara@...>
1998/12/07
原です。
[#3774] Re: List()
— shugo@... (MAEDA Shugo)
1998/12/08
前田です。
[#3780] Re: List()
— Shin-ichiro Hara <sinara@...>
1998/12/08
原です。
[#3784] Re: List()
— shugo@... (MAEDA Shugo)
1998/12/09
前田です。
[#3788] Re: List()
— Shin-ichro Hara <sinara@...>
1998/12/09
原です。
[#3789] Re: List()
— MAEDA Shugo <shugo@...>
1998/12/10
前田です。
[#3790] Re: List()
— Shin-ichiro Hara <sinara@...>
1998/12/10
原です。
[#3791] Re: List()
— MAEDA Shugo <shugo@...>
1998/12/10
前田です。
[#3793] Re: List()
— Shin-ichiro Hara <sinara@...>
1998/12/12
原です。
[#3797] Re: List()
— matz@... (Yukihiro Matsumoto)
1998/12/14
まつもと ゆきひろです
[#3602] problem of Delegator — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
17 messages
1998/11/20
[#3605] Re: problem of Delegator
— matz@... (Yukihiro Matsumoto)
1998/11/20
まつもと ゆきひろです
[#3606] Re: problem of Delegator
— keiju@... (石塚圭樹 )
1998/11/20
けいじゅ@日本ラショナルソフトウェアです.
[#3607] Re: problem of Delegator
— matz@... (Yukihiro Matsumoto)
1998/11/20
まつもと ゆきひろです
[#3612] Re: problem of Delegator
— keiju@... (石塚圭樹 )
1998/11/20
けいじゅ@日本ラショナルソフトウェアです.
[#3613] Re: problem of Delegator
— matz@... (Yukihiro Matsumoto)
1998/11/20
まつもと ゆきひろです
[#3618] Re: problem of Delegator
— keiju@... (石塚圭樹 )
1998/11/20
けいじゅ@日本ラショナルソフトウェアです.
[#3619] Re: problem of Delegator
— matz@... (Yukihiro Matsumoto)
1998/11/20
まつもと ゆきひろです
[#3620] Re: problem of Delegator
— keiju@... (石塚圭樹 )
1998/11/20
けいじゅ@日本ラショナルソフトウェアです.
[#3647] Re: problem of Delegator
— matz@... (Yukihiro Matsumoto)
1998/11/24
まつもと ゆきひろです
[#3652] Re: problem of Delegator
— keiju@... (石塚圭樹 )
1998/11/24
けいじゅ@日本ラショナルソフトウェアです.
[#3653] Re: problem of Delegator
— matz@... (Yukihiro Matsumoto)
1998/11/24
まつもと ゆきひろです
[#3655] Re: problem of Delegator
— keiju@... (石塚圭樹 )
1998/11/24
けいじゅ@日本ラショナルソフトウェアです.
[#3621] Time object memory leak? — Masaki Fukushima <fukusima@...>
福嶋と申します。
6 messages
1998/11/21
[#3626] block local variable (Re: スコープの範囲) — shugo@... (MAEDA Shugo)
前田です。
47 messages
1998/11/22
[#3628] Re: block local variable (Re: スコープの範囲)
— Koji Arai <JCA02266@...>
1998/11/22
新井です。
[#3629] Re: block local variable (Re: スコープの範囲)
— shugo@... (MAEDA Shugo)
1998/11/22
前田です。
[#3632] Re: block local variable (Re: スコープの範囲)
— Koji Arai <JCA02266@...>
1998/11/22
新井です。
[#3633] Re: block local variable (Re: スコープの範囲)
— shugo@... (MAEDA Shugo)
1998/11/22
前田です。
[#3636] Re: block local variable (Re: スコープの範囲)
— Shin-ichiro Hara <sinara@...>
1998/11/23
原です。
[#3642] Re: block local variable (Re: スコープの範囲)
— Koji Arai <JCA02266@...>
1998/11/23
新井です。
[#3645] Re: block local variable(Re: スコープの範囲)
— Shin-ichiro Hara <sinara@...>
1998/11/23
原です。
[#3674] Re: block local variable(Re: スコープの範囲)
— Koji Arai <JCA02266@...>
1998/11/25
新井です。
[#3678] Re: block local variable(Re: スコープの範囲)
— matz@... (Yukihiro Matsumoto)
1998/11/26
まつもと ゆきひろです
[#3681] Re: block local variable(Re: スコープの範囲)
— Kazuhiro HIWADA <hiwada@...>
1998/11/26
ひわだです。
[#3682] Re: block local variable(Re: スコープの範囲)
— Shin-ichro Hara <sinara@...>
1998/11/26
原です。
[#3683] Re: block local variable(Re: スコープの範囲)
— matz@... (Yukihiro Matsumoto)
1998/11/26
まつもと ゆきひろです
[#3684] Re: block local variable(Re: スコープの範囲)
— Shin-ichro Hara <sinara@...>
1998/11/26
原です。
[#3685] Re: block local variable(Re: スコープの範囲)
— matz@... (Yukihiro Matsumoto)
1998/11/26
まつもと ゆきひろです
[#3686] nested method? (Re: block local variable)
— shugo@... (MAEDA Shugo)
1998/11/26
前田です。
[#3687] Re: nested method? (Re: block local variable)
— Kazuhiro HIWADA <hiwada@...>
1998/11/26
ひわだです。
[#3689] Re: nested method? (Re: block local variable)
— shugo@... (MAEDA Shugo)
1998/11/27
前田@大阪大学です。
[#3690] Re: nested method? (Re: block local variable)
— Kazuhiro HIWADA <hiwada@...>
1998/11/27
ひわだです。
[#3692] Re: [ruby-list:11096] Re: MacRuby — Wakou Aoyama <wakou@...>
青山です。
10 messages
1998/11/27
[#3698] Re: [ruby-list:11096] Re: MacRuby
— shugo@... (MAEDA Shugo)
1998/11/29
前田です。
[#3699] Re: [ruby-list:11096] Re: MacRuby
— Wakou Aoyama <wakou@...>
1998/11/29
青山です。
[#3703] Re: [ruby-list:11096] Re: MacRuby
— Shin-ichro Hara <sinara@...>
1998/11/30
原です。
[#3707] new delegator — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
6 messages
1998/11/30
[#3709] ruby-1.1c9 install 中に SEGV — Koji Arai <JCA02266@...>
新井です。
18 messages
1998/11/30
[#3876] Re: ruby-1.1c9 install 中に SEGV
— Koji Arai <JCA02266@...>
1998/12/20
新井です。
[#3883] Re: ruby-1.1c9 install 中に SEGV
— matz@... (Yukihiro Matsumoto)
1998/12/22
まつもと ゆきひろです
[#3965] Re: ruby-1.1c9 install 中に SEGV
— Koji Arai <JCA02266@...>
1998/12/24
新井です。
[ruby-dev:3608] Re: Multiple assignment at yield()
From:
Shin-ichro Hara <sinara@...>
Date:
1998-11-20 06:15:28 UTC
List:
ruby-dev #3608
原です。
In message "[ruby-dev:3601] Re: Multiple assignment at yield()"
on 98/11/20, Yukihiro Matsumoto <matz@netlab.co.jp> writes:
|
|まつもと ゆきひろです
|ということですから 7 の方が良いですね.そうか.
|それを加味すると結果は
|
| Foo.new([0]).each0 { |x| p x } #=> 0
| Foo.new([1]).each1 { |x| p x } #=> 1
| Foo.new([2]).each2 { |x| p x } #=> [2]
| Foo.new([3]).each3 { |x| p x } #=> 3
| Foo.new([4]).each4 { |x| p x } #=> 4
| Foo.new([5]).each5 { |x| p x } #=> 5
| Foo.new([6]).each6 { |x| p x } #=> [6]
| Foo.new([7]).each7 { |x| p x } #=> 7
| Foo.new([8]).each8 { |x| p x } #=> 8
|
| Foo.new([[0]]).each0 { |x| p x } #=> [0]
| Foo.new([[1]]).each1 { |x| p x } #=> 1
| Foo.new([[2]]).each2 { |x| p x } #=> [2]
| Foo.new([[3]]).each3 { |x| p x } #=> 3
| Foo.new([[4]]).each4 { |x| p x } #=> [4]
| Foo.new([[5]]).each5 { |x| p x } #=> 5
| Foo.new([[6]]).each6 { |x| p x } #=> [6]
| Foo.new([[7]]).each7 { |x| p x } #=> 7
| Foo.new([[8]]).each8 { |x| p x } #=> [8]
|
|になりますね.
この結果は納得できます!これを仕様にするのはいいとおもいます。
残る問題は *a = [0] ですね。
|| 1) yield(*x) は無条件に x の一番外側の [] を剥ぎとって
|| 代入の右辺に置く
|| 2) *x = は無条件に右辺に [] を付けて受ける
|| 3) それ以外はいままで通り
||
||というものです。したがって、、、
|
|こっちはいまいち受け入れがたく感じています.というのも
|
| (1) yieldの元々の挙動が「1要素はそのまま,2要素以降は配列
| 化して渡す」というものですから.が,each7で分かったよ
| うに,*がつけばプログラムの字面上その配列の(配列でなけ
| れば配列化した)内容が展開された時と同じ動作をするよう
| にしようと思います.
|
| (2) *xというのは「右辺の残りを代入する」という意味です.多
| 重代入ですから,右辺は配列化されます.ですから,右辺に
| コンマが無く,その値が配列でないものが来た時には [] を
| つけて受けることになります(現状の動作).
|
| これを「無条件に [] をつける」となると,「右辺が配列で
| ない時には配列化する」という多重代入の原則が崩れるよう
| に思えるのですが,違うのでしょうか?
その通りです。原則を崩さないとできないんです。で、その「良い崩
し方」を考えています。
|というのを読むと分かって来ました.そうか.
|
| a, *b = 1, [3]; # a=1, b=[[3]]
|
|なのに
|
| *b = [3]; # b=[3]
|
|なのはおかしいということですね.それは確かに.
そうです。まさにそれを問題にしていました。
In message "[ruby-dev:3604] Re: Multiple assignment at yield()"
on 98/11/20, Yukihiro Matsumoto <matz@netlab.co.jp> writes:
|と思ったのですが,考え直してみると,前者の右辺の値は
|
| [1, [3]]
|
|で,後者の右辺の値は
|
| [3]
|
|ですから,これで良いようにも思えて来ました.少々混乱を呼びが
|ちですが.まったく新しい解釈が出ない限り現状のままにした方が
|良いように思います.原さんの案に期待しよう.
そうなんです。混乱するけど、これは理屈は通ってるんです。
しかし、多重代入を介して、b に Y を確実に渡すには、
dummy, *b = "dummy", Y
みたいに書かざるをえない。それが残念な気がするのです。
で、私の考えは、、、また後で。
||話を yield の方に移して、現在の yield(Y) のパラメータの渡し方は
||こうですよね。
||
|| |x| #=> x = nil [ Y が0要素のとき ]
|| = Y [ x = Y が単純代入の形をしているとき ]
|| = A(Y) [ それ以外 ]
||ここまではいいでしょうか?合ってますか?
|
|おおむね合ってます.些細な補足は Y がコンマで区切られた式だっ
|た場合,無条件に[Y]と解釈されることです.
それは
|| = A(Y) [ それ以外 ]
に含めたつもりでした。大文字で X とか Y とか書いたらコンマで
書いたリストもあり得ることにしましょう。