2011-06-01から1ヶ月間の記事一覧

Enumerable#thread_withでRubyのスレッドを簡単に使おう!

前回の投稿ではsleep sortと それに対抗したrunning sortを紹介したよ sleep sortに対抗してrunning sortだ!(失敗に終わる編) それらのアルゴリズムではRubyのThreadを使ったけど Threadってなんか毎回書き方を忘れるよ 引数の受け渡し方とかjoinとか も…

sleep sortに対抗してrunning sortだ!(Ruby版|失敗に終わる編)

少し前にsleep sortという ソートアルゴリズムが発見されたよね 常識を覆すソートアルゴリズム!その名も"sleep sort"! これをRubyのThreadを使って実現すると だいたい次のようになるんだよ class Array def sleep_sort mem = [] map do |i| Thread.new(i)…

Rubyのpでメソッドチェーンを覗き見よう!

Rubyでメソッドチェーンの途中経過を覗き見るには Kernel#tapが便利だよね (1..10).tap{ |x| puts x.inspect } .to_a.tap{ |x| puts x.inspect } .select { |x| x % 2 == 0 }.tap{ |x| puts x.inspect } .map { |x| x * x }.tap{ |x| puts x.inspect } # >> …

知って得する21のRubyのトリビアな記法 ~ 21 Trivia Notations you should know in Ruby

ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。知って得する21のRubyのトリビアな記法: melborne.github.com - ちょっとトリビアだけど 知っていると意外と便利なRuby…

内部DSLを使って、RubyのWebフレームワークを書こう!

Sinatraのようなベース言語の構文を使って実現するDSLを 内部DSLといいます 前回僕が書いたChinatraは一見内部DSLにみえるけど ベース言語とは異なる構文を使った外部DSLです でも時代の風は内部DSLに向いています the 0.8 true language 言語ワークベンチ …

Sinatraに別構文があってもいいじゃないか!

前の投稿でSinatraはRubyそのものでDSLじゃないと言いました SinatraはDSLなんかじゃない、Ruby偽装を使ったマインドコントロールだ! 確かに内部DSLというのはそういうものなのかもしれません でも言語といったら独自の構文くらいはもっていたい それで コ…

SinatraはDSLなんかじゃない、Ruby偽装を使ったマインドコントロールだ!

ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。SinatraはDSLなんかじゃない、Ruby偽装を使ったマインドコントロールだ! : melborne.github.com - Sinatraのサイトを…