2011-06-01から1ヶ月間の記事一覧
前回の投稿ではsleep sortと それに対抗したrunning sortを紹介したよ sleep sortに対抗してrunning sortだ!(失敗に終わる編) それらのアルゴリズムではRubyのThreadを使ったけど Threadってなんか毎回書き方を忘れるよ 引数の受け渡し方とかjoinとか も…
少し前にsleep sortという ソートアルゴリズムが発見されたよね 常識を覆すソートアルゴリズム!その名も"sleep sort"! これをRubyのThreadを使って実現すると だいたい次のようになるんだよ class Array def sleep_sort mem = [] map do |i| Thread.new(i)…
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のトリビアな記法: melborne.github.com - ちょっとトリビアだけど 知っていると意外と便利なRuby…
Sinatraのようなベース言語の構文を使って実現するDSLを 内部DSLといいます 前回僕が書いたChinatraは一見内部DSLにみえるけど ベース言語とは異なる構文を使った外部DSLです でも時代の風は内部DSLに向いています the 0.8 true language 言語ワークベンチ …
前の投稿でSinatraはRubyそのものでDSLじゃないと言いました SinatraはDSLなんかじゃない、Ruby偽装を使ったマインドコントロールだ! 確かに内部DSLというのはそういうものなのかもしれません でも言語といったら独自の構文くらいはもっていたい それで コ…
ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。SinatraはDSLなんかじゃない、Ruby偽装を使ったマインドコントロールだ! : melborne.github.com - Sinatraのサイトを…