13/03/05 08:27:01.19
>>343
hoge?fuga:hage
360:デフォルトの名無しさん
13/03/05 11:16:38.72
>>358
特別な意味はないよ
361:デフォルトの名無しさん
13/03/05 18:07:00.77
Windows版で**/がうまく動きません
フォルダ名が日本語のフォルダが無視されます
362:デフォルトの名無しさん
13/03/05 20:34:54.56
2.evalby( :Math#sqrt )
=> 1.4142135623730951
こういった風にオブジェクトを指定の方法で処理する書き方ってありますか?
もちろん上のは Math.sqrt(2) と同じ結果ですが、
someobj.を〇〇する.それを△△する.さらに□□する.
といったように加工の順番どおりに記述できないのかなぁということです。
363:デフォルトの名無しさん
13/03/05 20:53:31.84
Numericなどを独自拡張するしか無さそうな気がするんだけど
364:デフォルトの名無しさん
13/03/05 21:31:02.00
>>363 なるほど拡張ですか
class Object
def evalby(&blk)
blk.call(self)
end
end
2.evalby{|x| Math.sqrt(x)}
=> 1.4142135623730951
2.evalby{|x| Math.sqrt(x)}.evalby{|x| x**2}
=> 2.0000000000000004
見よう見まねで試してみましたが、もっとましな実装方法があれば教えてください
365:デフォルトの名無しさん
13/03/05 21:47:50.85
別バージョン
class Object
def evalby(code)
code.call(self)
end
end
2.evalby(Math.method(:sqrt)).evalby(->x{ x**2})
=> 2.0000000000000004
この辺で自分的には満足ですが拡張無しでも出来るのなら知りたいです。
366:デフォルトの名無しさん
13/03/05 22:07:25.46
>>361
Dir.glob(**/)なら動かない環境があるよ
367:デフォルトの名無しさん
13/03/05 23:51:06.10
>>365
>> 2.instance_eval(&Math.method(:sqrt))
=> 1.4142135623730951
>> 2.instance_eval(&Math.method(:sqrt)).instance_eval(&->x{x**2})
=> 2.0000000000000004
368:デフォルトの名無しさん
13/03/06 00:18:54.23
>>367 ありがとうございます
やはり素人が思いつくような機能は大抵は備わっている感じですなんですなあ・・・
369:デフォルトの名無しさん
13/03/06 00:20:36.41
そりゃそうよ、開発効率重視の言語なんだからさ
PHPみたいなゴミとは訳が違う
370:デフォルトの名無しさん
13/03/06 00:28:48.66
>>362
メソッドチェーンのことだったらRubyでもPHPでもできる
371:デフォルトの名無しさん
13/03/06 00:51:09.59
メソッドチェーンが主目的ではなくて
objが○○する.成果物が△△する
ではなく
objに対して(xxxが)○○する.成果物に対して(yyyが)△△する
的な事をしたいという話でした
372:デフォルトの名無しさん
13/03/06 02:58:45.17
そういうの前から欲しいと思ってた
2.sqrt ==> x # 代入のつもり
x**2.puts(file)
みたいな
373:デフォルトの名無しさん
13/03/06 10:48:48.62
>>361
RubyをWindowsで使っちゃうひとって
374:デフォルトの名無しさん
13/03/06 11:12:29.20
上にも似たようなことがあったが、WindowsでRuby使う人はRubyに慣れてる人なんだよね
Linux(いやMacOSXでもいいけど)上では普通に動くのにWindowsではなんか変だな、しゃあないかわりに○○するか、で終了
迂回できる知識があるので「困ってない」、から、いつまでたっても直らない
今回だとDir.globの*はあんまりにも他の部分と動作解釈が違うので、Linux上ですら意図的に避けられていることが多い
Dir.entriesを正規表現で掬い上げるとか、そっちのほうが単純確実
375:デフォルトの名無しさん
13/03/06 11:36:54.71
初心者や Ruby に慣れてない人や Linux に慣れてない人は、
Windows ではなんか変だな、しゃあないかわりに Python するか、で終了。
なのにね。
なんでわざわざ障害の多い Ruby 使おうとするんだろう。
376:デフォルトの名無しさん
13/03/06 13:25:04.44
Windowsがいいにきまってるでしょ
377:デフォルトの名無しさん
13/03/06 17:20:02.85
RubyをWindowsで使っちゃうひとって
378:デフォルトの名無しさん
13/03/06 20:28:24.38
LinuxでRuby使っちゃうひとって
379:デフォルトの名無しさん
13/03/06 21:42:44.64
最新のハッカーは、Windowsw、だぜ。