きしもとさん,中田さん,ご教示ありがとうございます。

結論としては,

  式1 ||= 式2

は

  式1 = 式1 || 式2

でもなく

  式1 || (式1 = 式2)

でもなく,るりまをはじめ,このような式の置き換えで説明している
ものはすべて誤り,ということですね?

そして,こいつが意味するところは,

  式1 が未定義もしくは偽のとき 式1 に 式2 の評価結果を代入し
 その値を全体の評価値とする。
 式1 が真のとき,その評価結果を全体の評価値とする。

ということでよろしいでしょうか?


それから,ローカル変数がどこから定義済とみなされるかは,いまま
で何となく行単位で考えてしまっていましたが,実際にはもっと細か
く,見た目で代入式が存在する箇所以降であると考えていいのでしょ
うか。

たとえば,

  x = 1 if x

は,if 修飾子の x よりも左に x = 1 があるので NameError には
ならないが,

  if x then x = 1 end

は x = 1 のほうがあとにあるので,NameError になる,と。



-- 
5.5 / moji.gr.jp