:=オペレータ

Rubyに:=を導入する件について。MLに書こうと思っているのですが、まとまらないのでとりあえずメモだけ。

  • 「:=」をどういうときに使えばいいか説明するのが難しそう(特に初心者に)
  • JavaScriptのvarの類推からすると、「とりあえず:=にしとけばいいよ」的になって、何でもかんでも:=がつきまくる恐れがある。それは本意ではないのでは? 結局「=」と「:=」のどっちを推奨したいのか?
  • ブロックの外にある同名の変数を参照できない。参照するためにはrenameして……とかやるくらいなら最初から別名にしとけばいい?
  • 元々の動機が「ブロックにブロックローカルな変数を導入したい」ということなら、ブロックの最初に書けばよいことで、どこでも使える:=を導入するのは強すぎでは?