作者: Bruce.
日時: 2007/10/21(04:26)
Bruce.です。
#よーやく復旧完了した気配

機械伯爵 さんは書きました (2007/10/21 0:02):
>> #つーと、Perlはさしずめ『雲のジュウザ』あたりになるのか?
> 
>  ラオウの腕一本で満足するほど、無欲では無いと思うなぁ……

いや、「我流で型がない」という線で。

> ※なんといっても今も昔もCGI界では帝王だ……

聖帝サウザーさま?

>  まぁ、ソレはさておき、Pythonのソレは明らかに意識して作ってあるトコだ
> から直しようが無いとこであるのに比べ、Rubyのは、まだなんとかなりそうな
> トコがあるような……

まあそうかもしれないっすけど、キーワード引数なんかはずいぶんと前から
望まれているけど、いまだに実装されていないわけで。
#まあ技術的なものでないところでの問題が主なんでしょうが

> <逆襲>
>  最後の式の結果をリターンで返すRubyのほうが珍しいと思うのだけど。
>  returnを↑にしたら少しはマシかしら?

最後に評価された式の値がサブルーチン(メソッド/関数)の戻り値になるのは
多分Perl由来です。そのPerlはどこから持ってきたのか、はたまたPerl起源
なのかまでは知りませんが。

> <えくすぷれっしょん>
>  代入が値を返さないのはよくCユーザに云われるけど、制御構造が値を返すって、
> ソレ、SmalltalkかLispかRubyだけじゃないの?

探せば他にもあったと思いますが、まあ少数派なのは間違いないでしょうし
Rubyにしてもそれが活用されているスクリプト/プログラムはそれほどは
ないような気がします。まあわたしの見ている範囲が狭いせいという可能性は
否定しません。


> <輸入/れぎゅらーえくすぷれっしょん>
>  仕様です。

Pythonの場合、r"" 形式の文字列があるのでJavaに比べればまだ
いいと思いますけどねえ。C#だと@""ですか。
正規表現リテラルがないので、必ずインスタンスを生成しないといけない
(文字列をそのまま渡せるクラスメソッドもありますが)というのは
わたしはそれほど重荷には感じません。
てか、Rubyでも Regexp.new("") します :)
#一行野郎レベルでなければ、ね。

> <文字列展開>
>  py3kで文字列でformatというメソッドが増えて、
> "{0:03}: {1}".format(56,'print("Hello!")')
>  とかいう書き方が増えたのだけど、どうだろう?

趣味の掲示板ウォッチ(笑)でよく思うんですが、無用の変数展開が
やたらと多いんですよね。PerlとかPHPで。

print $hoge;

とか書きゃあいいのにわざわざ

print "$hoge";

と書かないと気がすまないとか。

まあ""でくくることで黒魔術がかかる場合もあるんで、一概に意味なしとまでは
言い切れないのですが、普通は必要ないです。
Rubyの場合は面倒(#{}でくくる必要がある)なのでそれほど乱用されてはいないようです。


>  ちなみに、メソッドの第一引数にselfを書かなければならないのが、
> 面倒、という意味でしょうね(自分自身を参照するならthisつけるの
> で同じわけだし……)

そんなに面倒ですかねえ?
そんなに面倒ならエディタに自動で入れさせれば(笑)

>> ふと思ったんですが、self. つけるのがうざいうざいとは良く聞きますが、
>> 逆にデフォルトでは self. がついているかのごとく扱われて、外側のスコープに
>> 存在している変数(など)にアクセスするときには就職子必須にするか、
> 
>  global.value ?

まあ雰囲気としてはそれですが、globalってのは名前がよくないですね。

class ほげ(Object):
  foo = Math.random()
  def ふが():
     bar = foo + 1 #←ここで見ているfooは? あ、class の selfか(自爆)

っていう事態を想定して言ってましたので。

これは自分の外側にあるという意味ではよりglobalに近くはありますが、
globalではないですよね。