【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2008/04/27(日) 18:43:28【Perl,PHP】LLバトルロワイヤル【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1188997302/
0153デフォルトの名無しさん
2008/05/04(日) 22:34:47>>99は無名メソッドを定義出来る構文が欲しいなあと言ってるだけで
defの何が悪いかは説明していない
0154デフォルトの名無しさん
2008/05/04(日) 22:35:31間違っているのか?
これが自然だと思うのはRubyist以外いないと思うんだけど。
class Test
def func()
def internal_func1()
def internal_func2()
end
end
end
end
結果)
obj = Test.new
# obj.internal_func1() # undefined method
# obj.internal_func2() # undefined method
obj.func()
# obj.internal_func2() # undefined method
obj.internal_func1()
obj.internal_func2()
0155デフォルトの名無しさん
2008/05/04(日) 22:36:02具体的にって書いた通りだよ。日本語読めない?
0156デフォルトの名無しさん
2008/05/04(日) 22:36:10>>99はdefのネストに比べて無名メソッドの定義がいかに優れているかの説明であり、
それはすなわちdefのネストの短所である。
0157デフォルトの名無しさん
2008/05/04(日) 22:36:31>それはすなわちdefのネストの短所である。
ここまでは書いてないな。
0158デフォルトの名無しさん
2008/05/04(日) 22:37:08おいおい、現実が異なるんならその現実がどうなのかを具体的に書かないとダメだろ
0159デフォルトの名無しさん
2008/05/04(日) 22:37:25書いてないものは読めない。
別の仕組が既に用意されており、なおかつ、>>99に示された欠点があるにも関わらず
defのネストを用いる理由を示しなさい。具体的に。
0160デフォルトの名無しさん
2008/05/04(日) 22:38:192つの言語要素があり、一方が他方を完全に置き替えることができ、なおかつ優れているのならば、
他方にとってそれは欠点となる。当然の話だと思うが、理解できないのか?
0161デフォルトの名無しさん
2008/05/04(日) 22:38:37あの言語ヲタはどうやらRubyを改造してないと落ち着かないらしい。
放っておくと変な仕様を入れて良い仕様を消し始めるから
Rubyの開発MLは既に「matzの暴走を食い止める会」になってるよ。
0162デフォルトの名無しさん
2008/05/04(日) 22:39:110163デフォルトの名無しさん
2008/05/04(日) 22:40:14同じ本体を名前をかえて定義したり」したいなら
短所かもしれんけど、そもそもそういう機能じゃ
ないんだから、論点がずれてるんだよね。
0164デフォルトの名無しさん
2008/05/04(日) 22:40:440165デフォルトの名無しさん
2008/05/04(日) 22:41:16>なおかつ優れている
新しい構文を導入する程じゃないな
0166デフォルトの名無しさん
2008/05/04(日) 22:41:21どういう機能でなんでネスト許してるの?
0167デフォルトの名無しさん
2008/05/04(日) 22:41:47それは、defのネストが提供している機能をすべてカバーした上で、の話であることを忘れないように。
defのネストのほうが優れている点を示しなさい。具体的に。
0168デフォルトの名無しさん
2008/05/04(日) 22:42:51自分のクラスにメソッドを追加する機能でしょ。
0169デフォルトの名無しさん
2008/05/04(日) 22:43:08defのネストも、わざわざネストを許す程のものじゃないと思うが?
何かdefをネストさせる積極的理由があるのならそれを示せ。具体的に。
0170デフォルトの名無しさん
2008/05/04(日) 22:43:09なんでネスト許してるの?
0171デフォルトの名無しさん
2008/05/04(日) 22:44:10何でそんなに偉そうな口調なのか分からんが、少し落ち着いて冷静になった方が良いぜ。
0172デフォルトの名無しさん
2008/05/04(日) 22:44:43何でネストしたらダメなの?
0173デフォルトの名無しさん
2008/05/04(日) 22:44:52それは>>99が言う「メソッド本体の定義」で完全に置き替えることができる上に、
「メソッド本体の定義」に比べて非常に制限的な機能しか持たないわけだが、
それでもなおdefのネストを支持する理由を示せ。具体的に。
0174172
2008/05/04(日) 22:45:19具体的に示せ。
0175デフォルトの名無しさん
2008/05/04(日) 22:45:56どんなに説明しても無駄だよ。
0176デフォルトの名無しさん
2008/05/04(日) 22:46:320177デフォルトの名無しさん
2008/05/04(日) 22:46:49既に>>77および>>99に示されているが。おまえは文盲か?
0178デフォルトの名無しさん
2008/05/04(日) 22:47:08直感的じゃない上に別の手段があって無駄な機能って散々書いてる人がいる
0179デフォルトの名無しさん
2008/05/04(日) 22:47:340180デフォルトの名無しさん
2008/05/04(日) 22:48:15したがって、defのネストは正しく、>>99は間違いである。
るび厨の言ってることって、この程度でしょ。
0181デフォルトの名無しさん
2008/05/04(日) 22:48:410182デフォルトの名無しさん
2008/05/04(日) 22:49:12どのように論点がずれているか示せ。具体的に。
なお、>>77については認めるのか?>>77を認めればdefのネストは機能的に冗長になるわけだが。
0183デフォルトの名無しさん
2008/05/04(日) 22:49:470184デフォルトの名無しさん
2008/05/04(日) 22:50:00確かに必須の機能じゃないと思うけど、無駄な機能くらいならあっても良いよ。
具体的に示せの人みたいに興奮する程の欠点じゃないと思うんだが。
0185デフォルトの名無しさん
2008/05/04(日) 22:50:22メソッド内メソッドの定義と混ざって非常に分かりにくいから
0186デフォルトの名無しさん
2008/05/04(日) 22:50:460187デフォルトの名無しさん
2008/05/04(日) 22:51:02>メソッド内メソッド
無いものとは混じらないよ
0188デフォルトの名無しさん
2008/05/04(日) 22:51:34それしか言い逃れできないんでしょ、るび厨は。
defのネストは冗長なんだから、冗長ですねと認めればそれで済むのにね。
どうしてここまで固執するのか、サパーリわからんな。
0189デフォルトの名無しさん
2008/05/04(日) 22:52:43いや、無駄に興奮してるのは君だよwwwwwww
あー、おもしれw
0190デフォルトの名無しさん
2008/05/04(日) 22:52:53最近クロージャを知ったばかりの人かと思ったよ。
0191デフォルトの名無しさん
2008/05/04(日) 22:53:130192デフォルトの名無しさん
2008/05/04(日) 22:53:25そんだけ草を生やしておいてその言い訳はみっともないよ
0193デフォルトの名無しさん
2008/05/04(日) 22:53:30そうだな。
「メソッド内メソッドを定義したと思ったら実は違った。しかもメソッドは普通に呼び出せる」
だから混同するより悪いかもしれん。
0194デフォルトの名無しさん
2008/05/04(日) 22:55:30Rubyのイメージ低下を恐れるならまずまつもとをどうにかしたほうがいいと思うのは俺だけかw
0195デフォルトの名無しさん
2008/05/04(日) 22:56:52仮に、C-0xで関数定義のネストが構文的に許されるよう拡張され、
実行時に外側の関数が呼ばれて実行された時に、その内側の関数が
上書きで定義されるものだったとする。
こんな無茶苦茶な拡張でも君は「無駄な機能ぐらいあっても良いよ」と言うのか?
0196デフォルトの名無しさん
2008/05/04(日) 22:57:080197デフォルトの名無しさん
2008/05/04(日) 23:00:17内容のない印象操作だね。いいかげん虚しくないか?
0198デフォルトの名無しさん
2008/05/04(日) 23:01:48それを信者が「いや、これで正しいんだ」とか言い出してひっこみがつかなくなったわけだ。
0199デフォルトの名無しさん
2008/05/04(日) 23:02:34あんなアホ言語元から使わね
0200デフォルトの名無しさん
2008/05/04(日) 23:04:29という話になるのかと思ったら「最終的には無駄な機能くらいならあっても良いよ」かよ、これは酷いw
0201デフォルトの名無しさん
2008/05/04(日) 23:08:060202デフォルトの名無しさん
2008/05/04(日) 23:10:54matz自身が率先して似たようなことしてるから・・・
0203デフォルトの名無しさん
2008/05/04(日) 23:14:340204デフォルトの名無しさん
2008/05/04(日) 23:24:56今までは否定派だったが、これを知って考えが変わった。
こういうことが余計な苦労無くできるなんて、ほんとうに素晴らしい言語だと思う。
class Test
def show_yourself()
puts "ノンケ"
end
def func(value)
if value % 2 == 0
def show_yourself()
puts "ウホッ"
end
else
def show_yourself()
puts "オネエさま〜"
end
end
end
end
obj = Test.new
obj.show_yourself()
5.times do
obj.func(rand(100))
obj.show_yourself()
end
0205デフォルトの名無しさん
2008/05/04(日) 23:34:08「ウホッ」や「オネエさま〜」に続いてvalueの値を表示したいのだが、どうしたらいいのかな?
0206デフォルトの名無しさん
2008/05/04(日) 23:37:42クロージャを昨日初めて知ったC++使いがはしゃいでただけにしか見えないが
0207デフォルトの名無しさん
2008/05/04(日) 23:40:02うわ、また懲りずに全く同じ内容の印象操作・・・ほんとうにるび厨って救いようがないな
0208デフォルトの名無しさん
2008/05/04(日) 23:40:540210デフォルトの名無しさん
2008/05/04(日) 23:41:330212デフォルトの名無しさん
2008/05/04(日) 23:42:19だよな、しかもそれを2回もやってるんだぜ、本当に何考えてるんだろうなるび厨って。
0213デフォルトの名無しさん
2008/05/04(日) 23:42:300214デフォルトの名無しさん
2008/05/04(日) 23:43:17しかも恐らく2回も
0215デフォルトの名無しさん
2008/05/04(日) 23:44:23馬鹿じゃない人間が一人もいない喧嘩だな。
0216デフォルトの名無しさん
2008/05/04(日) 23:45:19>馬鹿じゃない人間
あんたが居るじゃないか
0217デフォルトの名無しさん
2008/05/04(日) 23:46:07勘弁してくれ、せめて隔離スレあるんだからそこでやってくれ
0218デフォルトの名無しさん
2008/05/04(日) 23:46:11うわぁ、印象操作されてる人間が印象操作を指摘するってか?
るび厨ってどんだけイカれてるんだ・・・
0219デフォルトの名無しさん
2008/05/04(日) 23:47:15matzが率先してネガキャンしてるから仕方ない
0220デフォルトの名無しさん
2008/05/04(日) 23:48:47そのゲームのキャラみたいな口調は自前?
0221デフォルトの名無しさん
2008/05/04(日) 23:49:18僕も知りたいんだけど。>>206の上から目線からいって
>>99よりは長い経験持ってるんでしょ?
0222デフォルトの名無しさん
2008/05/04(日) 23:50:23普段はそうでもないのだがあまりにも酷すぎたので思わずw
0223デフォルトの名無しさん
2008/05/04(日) 23:51:010224デフォルトの名無しさん
2008/05/04(日) 23:51:260225デフォルトの名無しさん
2008/05/04(日) 23:51:54そか。板についてたよ。>>218は絵が浮かんでちょっと面白かったw
0226デフォルトの名無しさん
2008/05/05(月) 00:11:460227デフォルトの名無しさん
2008/05/05(月) 00:16:450228デフォルトの名無しさん
2008/05/05(月) 00:24:510229デフォルトの名無しさん
2008/05/05(月) 00:32:390230デフォルトの名無しさん
2008/05/05(月) 01:01:45def inner() x * 2 end
inner()
end
puts foo(1234)
こんなのが、
:2: in `inner': undefined local variable or method `x' for main:Object (NameError)
となり、外側のスコープの変数が見えず、実行不能 ><
これぐらいはまあ仕様だ。
引数で渡せばすむこと
def foo(x)
# ok
def inner(x) x * 2 end
inner(x)
end
さて、ちょっとしたミスを
puts foo(1234)
puts inner(1000) # ←呼べる件について
0231デフォルトの名無しさん
2008/05/05(月) 01:04:18それはいいとして、
foo を呼び出したあと、inner 関数が Kernelモジュールに定義されていることが問題?
つまり……
def foo
def inner
puts " called in inner"
end
inner
end
foo
1234.foo rescue "error: #$!" # error
1234.inner # ok!!
"unko".foo rescue "error: #$!" # error
"unko".inner # ok!!
1234.inner や "unko".inner 呼べてるワロタ
0232デフォルトの名無しさん
2008/05/05(月) 01:05:230233デフォルトの名無しさん
2008/05/05(月) 01:15:28もうあとに戻れなくなってるんだよね
Rubyって本当におもしろいで(ry
0234デフォルトの名無しさん
2008/05/05(月) 01:43:03PerlにもPythonにもPHPにもだめな仕様はあるのに
PHPなんかは言語仕様的にはVBよりちょっとマシ程度でしょ
0235デフォルトの名無しさん
2008/05/05(月) 01:44:420236デフォルトの名無しさん
2008/05/05(月) 01:48:37ruby厨が粘着したからな
0237デフォルトの名無しさん
2008/05/05(月) 08:11:540238デフォルトの名無しさん
2008/05/05(月) 08:15:450239デフォルトの名無しさん
2008/05/05(月) 08:41:19ルビ厨乙
0240デフォルトの名無しさん
2008/05/05(月) 08:48:580241デフォルトの名無しさん
2008/05/05(月) 08:52:210242デフォルトの名無しさん
2008/05/05(月) 10:09:19PHPは言語がアレなのに加えて、使う奴はもっとアレだけどね。
あ、これはRubyという言語の作者が言っていたことですよ、念のため。
0243デフォルトの名無しさん
2008/05/05(月) 10:17:07まぁでも平日の朝のほうが痛いでしょ
見慣れてて麻痺しがちだけど
0244デフォルトの名無しさん
2008/05/05(月) 10:45:590245デフォルトの名無しさん
2008/05/05(月) 11:08:290246デフォルトの名無しさん
2008/05/05(月) 11:17:32matzはマジうざいよな
0247デフォルトの名無しさん
2008/05/05(月) 11:20:13るび厨は負けそうになると急に厨になってどっちもどっちにしようとするんだよな
0248デフォルトの名無しさん
2008/05/05(月) 11:22:110249デフォルトの名無しさん
2008/05/05(月) 11:29:31defのネストはRubyの欠点だと認めちゃえばいいのに。
改良ってのは欠点を認めるところから始まるんだからさ。
0250デフォルトの名無しさん
2008/05/05(月) 11:30:07(存在しないけど)言語仕様的には「関数」とか「クロージャ」はRubyには存在しない。
0251デフォルトの名無しさん
2008/05/05(月) 11:30:390252デフォルトの名無しさん
2008/05/05(月) 11:32:05■ このスレッドは過去ログ倉庫に格納されています