Ruby 初心者スレッド Part 51at TECH
Ruby 初心者スレッド Part 51 - 暇つぶし2ch359:デフォルトの名無しさん
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、だぜ。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch