[#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

原です。

[#3722] multiple assignment, yield and return — Shin-ichro Hara <sinara@...> 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

前田です。

[#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

まつもと ゆきひろです

[#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

まつもと ゆきひろです

[#3709] ruby-1.1c9 install 中に SEGV — Koji Arai <JCA02266@...>

新井です。

18 messages 1998/11/30

[ruby-dev:3595] Re: Multiple assignment at yield()

From: matz@... (Yukihiro Matsumoto)
Date: 1998-11-18 06:58:00 UTC
List: ruby-dev #3595
まつもと ゆきひろです

In message "[ruby-dev:3594] Re: Multiple assignment at yield()"
    on 98/11/18, Shin-ichro Hara <sinara@blade.nagaokaut.ac.jp> writes:

|原です。

|実引数から仮引数の値の引渡しは、たとえ1つでも多重代入の様に行
|なわれるわけですね。
|
|#そして、単純代入は多重代入の特別な場合であると考えてはいけない
|#というのも重要なポイントだ。

ですね.

|一応、私の意見としては、
|
|  *a = [0]  #=>  a == [[0]]
|  yield(*[0])  #=>  yield(0)
|
|で一票かな。難しいなあ。

まず,現状を検討したところ,

  yield(*[0])   # => 0
  a = [0]
  yield(*a)     # => [0]

でした.これはまずいんで,両方とも 0 を yield するように変更
します.それから

|  *a = [0]  #=>  a == [[0]]

を考えると,現状の多重代入の動作は

  (1) 右辺が配列ならそのまま,そうでなければ配列化

  (2) 先頭に * が付いた変数には代入しなかった残りが配列とし
      て代入される

となっています.で,原さんの案はどうも1を変更しようというも
ののように聞こえます.つまり,配列であるなしにかかわらず,右
辺の式がひとつだったら配列化しよう(配列でくくろう)と.

ところが,1はこれはこれで便利なのです.たとえばこのおかげで
配列を返すメソッドを複数の値を返すメソッドとして使えます.

互換性の点だけでなく,使い勝手の点からも1をあきらめるのはつ
らいと思います.

|これらの実行結果について即答できる人は多くはないと思うけど(^^;、

上記の変更を施したruby 1.1dの挙動は以下の通りです.

        1
        1
        1
        1
        1
        [2]
        2
        2
        2
        2

ちょっとは変じゃなくなった?

|まあ、ruby1.1 で最適な each の定義は上の each0 ですが、一見正し
|そうに見える each3 がうまく動かないのが不満だったわけです。
|(意外に each4 がちゃんと動くのだった。)

each4がちゃんと動くのは偶然のような気がしますが….

|||  x = 25          #=> x == 25
|||  x = 25, 26      #=> x == [25, 26]
|||  x = *[25, 26]   #=> x == [25, 26]
|||
|||たいしてうれしくないかもしれないですが、ブロックパラメータの値
|||の受け渡しと consistent になって、八方丸く収まるというわけ。
||
||いや,文法が悲鳴を上げると言うデメリットがあります.^^;;;
|
|まつもとさんの悲鳴はともかく文法の悲鳴は聞きたくないです。:-)

でしょう? たとえば

        x = 25, 26

を許すと,foo(a=25, 26) が構文解析できなくなるんですね.いや,
yaccに悲鳴を上げさせればなんとかならないことはないのでしょう
けど,そういう曖昧な文法はイヤなんです.

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

In This Thread