トップページ⇒tech
981コメント242KB

【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
>>150
>>99は無名メソッドを定義出来る構文が欲しいなあと言ってるだけで
defの何が悪いかは説明していない
0154デフォルトの名無しさん2008/05/04(日) 22:35:31
>>130
間違っているのか?
これが自然だと思うのは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
>>152
具体的にって書いた通りだよ。日本語読めない?
0156デフォルトの名無しさん2008/05/04(日) 22:36:10
>>153
>>99はdefのネストに比べて無名メソッドの定義がいかに優れているかの説明であり、
それはすなわちdefのネストの短所である。
0157デフォルトの名無しさん2008/05/04(日) 22:36:31
>>156
>それはすなわちdefのネストの短所である。

ここまでは書いてないな。
0158デフォルトの名無しさん2008/05/04(日) 22:37:08
>>155
おいおい、現実が異なるんならその現実がどうなのかを具体的に書かないとダメだろ
0159デフォルトの名無しさん2008/05/04(日) 22:37:25
>>155
書いてないものは読めない。
別の仕組が既に用意されており、なおかつ、>>99に示された欠点があるにも関わらず
defのネストを用いる理由を示しなさい。具体的に。
0160デフォルトの名無しさん2008/05/04(日) 22:38:19
>>157
2つの言語要素があり、一方が他方を完全に置き替えることができ、なおかつ優れているのならば、
他方にとってそれは欠点となる。当然の話だと思うが、理解できないのか?
0161デフォルトの名無しさん2008/05/04(日) 22:38:37
matzが既に老害なのはRubyスレでも良く知られた話。
あの言語ヲタはどうやらRubyを改造してないと落ち着かないらしい。
放っておくと変な仕様を入れて良い仕様を消し始めるから
Rubyの開発MLは既に「matzの暴走を食い止める会」になってるよ。
0162デフォルトの名無しさん2008/05/04(日) 22:39:11
るび厨の独善がよくわかるスレですね。
0163デフォルトの名無しさん2008/05/04(日) 22:40:14
>>99 はさ、「他クラスのメソッドを定義したり、
同じ本体を名前をかえて定義したり」したいなら
短所かもしれんけど、そもそもそういう機能じゃ
ないんだから、論点がずれてるんだよね。
0164デフォルトの名無しさん2008/05/04(日) 22:40:44
MatzのPHP批判もお前が言うなとしか言いようのない内容だったしなw
0165デフォルトの名無しさん2008/05/04(日) 22:41:16
>>160
>なおかつ優れている

新しい構文を導入する程じゃないな
0166デフォルトの名無しさん2008/05/04(日) 22:41:21
>>163
どういう機能でなんでネスト許してるの?
0167デフォルトの名無しさん2008/05/04(日) 22:41:47
>>163
それは、defのネストが提供している機能をすべてカバーした上で、の話であることを忘れないように。
defのネストのほうが優れている点を示しなさい。具体的に。
0168デフォルトの名無しさん2008/05/04(日) 22:42:51
>>166
自分のクラスにメソッドを追加する機能でしょ。
0169デフォルトの名無しさん2008/05/04(日) 22:43:08
>>165
defのネストも、わざわざネストを許す程のものじゃないと思うが?
何かdefをネストさせる積極的理由があるのならそれを示せ。具体的に。
0170デフォルトの名無しさん2008/05/04(日) 22:43:09
>>168
なんでネスト許してるの?
0171デフォルトの名無しさん2008/05/04(日) 22:44:10
>>167
何でそんなに偉そうな口調なのか分からんが、少し落ち着いて冷静になった方が良いぜ。
0172デフォルトの名無しさん2008/05/04(日) 22:44:43
>>170
何でネストしたらダメなの?
0173デフォルトの名無しさん2008/05/04(日) 22:44:52
>>168
それは>>99が言う「メソッド本体の定義」で完全に置き替えることができる上に、
「メソッド本体の定義」に比べて非常に制限的な機能しか持たないわけだが、
それでもなおdefのネストを支持する理由を示せ。具体的に。
01741722008/05/04(日) 22:45:19
あ、忘れてたわw

具体的に示せ。
0175デフォルトの名無しさん2008/05/04(日) 22:45:56
ルビ厨にとってRubyの構文は絶対にして侵すべからざるものだから、
どんなに説明しても無駄だよ。
0176デフォルトの名無しさん2008/05/04(日) 22:46:32
説明になった無いもんな
0177デフォルトの名無しさん2008/05/04(日) 22:46:49
>>174
既に>>77および>>99に示されているが。おまえは文盲か?
0178デフォルトの名無しさん2008/05/04(日) 22:47:08
>>174
直感的じゃない上に別の手段があって無駄な機能って散々書いてる人がいる
0179デフォルトの名無しさん2008/05/04(日) 22:47:34
>>99は論点ずれてるから不採用。
0180デフォルトの名無しさん2008/05/04(日) 22:48:15
rubyの構文への批判とはすなわち間違いである。
したがって、defのネストは正しく、>>99は間違いである。

るび厨の言ってることって、この程度でしょ。
0181デフォルトの名無しさん2008/05/04(日) 22:48:41
どうやら論点がずれてて説明になってないということにするしかないようだw
0182デフォルトの名無しさん2008/05/04(日) 22:49:12
>>179
どのように論点がずれているか示せ。具体的に。
なお、>>77については認めるのか?>>77を認めればdefのネストは機能的に冗長になるわけだが。
0183デフォルトの名無しさん2008/05/04(日) 22:49:47
ルビ厨、必死になればなるほど藁えるなwww
0184デフォルトの名無しさん2008/05/04(日) 22:50:00
>>178
確かに必須の機能じゃないと思うけど、無駄な機能くらいならあっても良いよ。
具体的に示せの人みたいに興奮する程の欠点じゃないと思うんだが。
0185デフォルトの名無しさん2008/05/04(日) 22:50:22
>>172
メソッド内メソッドの定義と混ざって非常に分かりにくいから
0186デフォルトの名無しさん2008/05/04(日) 22:50:46
るび厨はこういうのに負けそうになると開き直りや揚げ足取りに終始するから嫌い
0187デフォルトの名無しさん2008/05/04(日) 22:51:02
>>185
>メソッド内メソッド

無いものとは混じらないよ
0188デフォルトの名無しさん2008/05/04(日) 22:51:34
>>181
それしか言い逃れできないんでしょ、るび厨は。
defのネストは冗長なんだから、冗長ですねと認めればそれで済むのにね。
どうしてここまで固執するのか、サパーリわからんな。
0189デフォルトの名無しさん2008/05/04(日) 22:52:43
>>184
いや、無駄に興奮してるのは君だよwwwwwww
あー、おもしれw
0190デフォルトの名無しさん2008/05/04(日) 22:52:53
>>99は冗長だという指摘だったのか?
最近クロージャを知ったばかりの人かと思ったよ。
0191デフォルトの名無しさん2008/05/04(日) 22:53:13
Ruby厨というか、Rubyの仕事を請け負ってる会社のおえらいさんとかが混ざってそうだな。
0192デフォルトの名無しさん2008/05/04(日) 22:53:25
>>189
そんだけ草を生やしておいてその言い訳はみっともないよ
0193デフォルトの名無しさん2008/05/04(日) 22:53:30
>>187
そうだな。
「メソッド内メソッドを定義したと思ったら実は違った。しかもメソッドは普通に呼び出せる」
だから混同するより悪いかもしれん。
0194デフォルトの名無しさん2008/05/04(日) 22:55:30
>>191
Rubyのイメージ低下を恐れるならまずまつもとをどうにかしたほうがいいと思うのは俺だけかw
0195デフォルトの名無しさん2008/05/04(日) 22:56:52
>>184
仮に、C-0xで関数定義のネストが構文的に許されるよう拡張され、
実行時に外側の関数が呼ばれて実行された時に、その内側の関数が
上書きで定義されるものだったとする。

こんな無茶苦茶な拡張でも君は「無駄な機能ぐらいあっても良いよ」と言うのか?
0196デフォルトの名無しさん2008/05/04(日) 22:57:08
鬼車問題でのRuby厨の開き直りっぷりは異常
0197デフォルトの名無しさん2008/05/04(日) 23:00:17
>>190
内容のない印象操作だね。いいかげん虚しくないか?
0198デフォルトの名無しさん2008/05/04(日) 23:01:48
ようするにmatzがパーサ書いた時に、defノードのネストを検知するのを忘れてただけだろ。
それを信者が「いや、これで正しいんだ」とか言い出してひっこみがつかなくなったわけだ。
0199デフォルトの名無しさん2008/05/04(日) 23:02:34
>>195
あんなアホ言語元から使わね
0200デフォルトの名無しさん2008/05/04(日) 23:04:29
「defはこういう趣旨だからネストを許してる」とか「defのネストはこういう目的のためにある」
という話になるのかと思ったら「最終的には無駄な機能くらいならあっても良いよ」かよ、これは酷いw
0201デフォルトの名無しさん2008/05/04(日) 23:08:06
matzを崇め奉っているのがこの程度の連中だということ、matzは自覚してるのかな。
0202デフォルトの名無しさん2008/05/04(日) 23:10:54
>>201
matz自身が率先して似たようなことしてるから・・・
0203デフォルトの名無しさん2008/05/04(日) 23:14:34
これRuby-Devでやったら伸びるのかな?
0204デフォルトの名無しさん2008/05/04(日) 23:24:56
>>200
今までは否定派だったが、これを知って考えが変わった。
こういうことが余計な苦労無くできるなんて、ほんとうに素晴らしい言語だと思う。

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
>>204
「ウホッ」や「オネエさま〜」に続いてvalueの値を表示したいのだが、どうしたらいいのかな?
0206デフォルトの名無しさん2008/05/04(日) 23:37:42
>>197
クロージャを昨日初めて知ったC++使いがはしゃいでただけにしか見えないが
0207デフォルトの名無しさん2008/05/04(日) 23:40:02
>>206
うわ、また懲りずに全く同じ内容の印象操作・・・ほんとうにるび厨って救いようがないな
0208デフォルトの名無しさん2008/05/04(日) 23:40:54
こんな文章で操作されるってどんだけ…
0209992008/05/04(日) 23:41:05
>>206
クロージャを仕事のコードで使いはじめたのは、ほんの15年前だから
最近といえば最近かもな。
0210デフォルトの名無しさん2008/05/04(日) 23:41:33
はいはい
0211992008/05/04(日) 23:41:56
で、>>206君は何十年前からクロージャを使っているんだい?
0212デフォルトの名無しさん2008/05/04(日) 23:42:19
>>208
だよな、しかもそれを2回もやってるんだぜ、本当に何考えてるんだろうなるび厨って。
0213デフォルトの名無しさん2008/05/04(日) 23:42:30
これは…
0214デフォルトの名無しさん2008/05/04(日) 23:43:17
操作されてるのは>>207だろ
しかも恐らく2回も
0215デフォルトの名無しさん2008/05/04(日) 23:44:23
やたら伸びてるから予想できることではあったが、
馬鹿じゃない人間が一人もいない喧嘩だな。
0216デフォルトの名無しさん2008/05/04(日) 23:45:19
>>215
>馬鹿じゃない人間

あんたが居るじゃないか
0217デフォルトの名無しさん2008/05/04(日) 23:46:07
毎度のこういうネガキャンでアンチRubyが量産されてるんだろうな・・・
勘弁してくれ、せめて隔離スレあるんだからそこでやってくれ
0218デフォルトの名無しさん2008/05/04(日) 23:46:11
>>214
うわぁ、印象操作されてる人間が印象操作を指摘するってか?
るび厨ってどんだけイカれてるんだ・・・
0219デフォルトの名無しさん2008/05/04(日) 23:47:15
>>217
matzが率先してネガキャンしてるから仕方ない
0220デフォルトの名無しさん2008/05/04(日) 23:48:47
>>218
そのゲームのキャラみたいな口調は自前?
0221デフォルトの名無しさん2008/05/04(日) 23:49:18
ねえ、>>206は何十年前からクロージャを使っているの?
僕も知りたいんだけど。>>206の上から目線からいって
>>99よりは長い経験持ってるんでしょ?
0222デフォルトの名無しさん2008/05/04(日) 23:50:23
>>220
普段はそうでもないのだがあまりにも酷すぎたので思わずw
0223デフォルトの名無しさん2008/05/04(日) 23:51:01
ちょ、どんだけ純真なんだよw
0224デフォルトの名無しさん2008/05/04(日) 23:51:26
ruby厨、ブザマだな。
0225デフォルトの名無しさん2008/05/04(日) 23:51:54
>>222
そか。板についてたよ。>>218は絵が浮かんでちょっと面白かったw
0226デフォルトの名無しさん2008/05/05(月) 00:11:46
>>206は黙り込んじゃったね。聞いちゃいけない話題だったのかな?
0227デフォルトの名無しさん2008/05/05(月) 00:16:45
何このチキンレース
0228デフォルトの名無しさん2008/05/05(月) 00:24:51
Rubyがカルト言語だってことがよく分かった
0229デフォルトの名無しさん2008/05/05(月) 00:32:39
黄金週間だな
0230デフォルトの名無しさん2008/05/05(月) 01:01:45
def foo(x)
  def 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
宣言だけでは駄目で、実行されないと関数が登録されないのは Ruby の仕様。
それはいいとして、

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:23
いやー本当にRubyっておもしろいで(ry
0233デフォルトの名無しさん2008/05/05(月) 01:15:28
不意に発動してしまったモンキーパッチ機能を言語本体で使い始めちゃったもんだから
もうあとに戻れなくなってるんだよね
Rubyって本当におもしろいで(ry
0234デフォルトの名無しさん2008/05/05(月) 01:43:03
Ruby大人気
PerlにもPythonにもPHPにもだめな仕様はあるのに
PHPなんかは言語仕様的にはVBよりちょっとマシ程度でしょ
0235デフォルトの名無しさん2008/05/05(月) 01:44:42
VB馬鹿にするやつは俺が出て行って謝る
0236デフォルトの名無しさん2008/05/05(月) 01:48:37
>>234
ruby厨が粘着したからな
0237デフォルトの名無しさん2008/05/05(月) 08:11:54
Rubyで初めてクロージャを知ったシロウトがシッタカかましてるスレはここですね。
0238デフォルトの名無しさん2008/05/05(月) 08:15:45
さながら中学生の喧嘩だなw
0239デフォルトの名無しさん2008/05/05(月) 08:41:19
>>238
ルビ厨乙
0240デフォルトの名無しさん2008/05/05(月) 08:48:58
子供の日だな
0241デフォルトの名無しさん2008/05/05(月) 08:52:21
祝日なのに朝から煽ってる奴がいてワラタw
0242デフォルトの名無しさん2008/05/05(月) 10:09:19
PerlもPythonもRubyほどではないだろ。
PHPは言語がアレなのに加えて、使う奴はもっとアレだけどね。
あ、これはRubyという言語の作者が言っていたことですよ、念のため。
0243デフォルトの名無しさん2008/05/05(月) 10:17:07
>>241
まぁでも平日の朝のほうが痛いでしょ
見慣れてて麻痺しがちだけど
0244デフォルトの名無しさん2008/05/05(月) 10:45:59
>>206のクロージャ歴、まだー?
0245デフォルトの名無しさん2008/05/05(月) 11:08:29
連休はまだまだ続く
0246デフォルトの名無しさん2008/05/05(月) 11:17:32
>>242
matzはマジうざいよな
0247デフォルトの名無しさん2008/05/05(月) 11:20:13
>>238
るび厨は負けそうになると急に厨になってどっちもどっちにしようとするんだよな
0248デフォルトの名無しさん2008/05/05(月) 11:22:11
そろそろ燃料不足か?
0249デフォルトの名無しさん2008/05/05(月) 11:29:31
完璧な言語なんてないんだから、
defのネストはRubyの欠点だと認めちゃえばいいのに。
改良ってのは欠点を認めるところから始まるんだからさ。
0250デフォルトの名無しさん2008/05/05(月) 11:30:07
Proc.new で作られるのはProcオブジェクト(Procのインスタンス)であって、
(存在しないけど)言語仕様的には「関数」とか「クロージャ」はRubyには存在しない。
0251デフォルトの名無しさん2008/05/05(月) 11:30:39
>>249 誰も欠点じゃないとは言ってない件
0252デフォルトの名無しさん2008/05/05(月) 11:32:05
まつもともRuby信者も器が小さいというか余裕がないんだよな
■ このスレッドは過去ログ倉庫に格納されています