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ではないですよね。