人気ブログランキング | 話題のタグを見る
Symbol#to_proc
inject + Symbol#to_proc = fold @ 2007年05月 @ ratio - rational - irrational @ IDM
そうか。ActiveSupportのSymbol#to_procがあればinjectで極めてシンプルに畳み込みできるんだ。

(1..10).inject(&:*)
=> 3628800

 最初、このコードの意味が分からなかったんだけど、要するに以下のような事をしているらしい。

(1..10).inject{|r, s| r * s }
#=> 3628800

 つまり、ブロックに渡される引数に対して、シンボルで指定されているメソッドを適用させる、ということみたい。今のところ、ActiveSupport がないと、上記のような書き方は出来ない模様。なので、試す場合は、Rails アプリのディレクトリで、"ruby script/console" コマンドを実行する。

% ruby script/console
Loading development environment.
>> (1..10).inject(&:*)
=> 3628800
>>

 ちなみに、Ruby の1.9では、本体に組み込まれているとのこと (Matzにっき(2007-05-26))。

 ググってみたら、「ヽ( ・∀・)ノくまくまー」さんの説明が、とても分かりやすかったので、詳しくはそちらで。
by fkmn | 2007-06-08 23:28 | IT
<< Ruby 会議 2007 1日目 【感想】迷いと決断 >>


とあるWebアプリケーションエンジニアの日記

by fkmn
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX