2005年05月23日
_ Rubyでブロックを使う
Lispや関数型言語では基本的な手法ですが、以下のようなRubyプログラムを、
def f(n) (1..n).map{|x| x**3}.inject{|y,z| y+z} end
次のように書くのもありだな、と思いました。
def f(n) cube = proc{|x| x**3} plus = proc{|x,y| x+y} (1..n).map(&cube).inject(&plus) end
ブロックの中身がごちゃごちゃしてい場合や、メソッドチェインが長い場合に 有効かもしれません。私はmap、find_all、injectといったメソッドを 良く使うので一度試してみようかと思います。
_ よた話
検索エンジンで適当にしらべた所、一戸建ての家を2000万円くらいで 建てる場合、設計にかかるコストはそのうち10%〜15%くらいらしいです。