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))。

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


とあるWebアプリケーションエンジニアの日記
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
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
プログラミングが「出来る..
from とりあえず9JP?
Genographic ..
from ナンジャモンジャ
ジュセリーノ
from ありの出来事
くちこみブログ集(ライフ..
from くちこみブログ集(ライフ)(..
以降、丁寧語で行こう!
from エッセイ的な何か
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

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