12 Aug '12, 12pm

@ey0t

「あなたは map 派?それとも collect 派?」 Rubyist であれば、一度はこんな質問を受けたことがあるのではないでしょうか。たとえば Rubyist Magazine の過去の記事を紐解くと、まつもとゆきひろさんのインタビュー や角谷信太郎さんのインタビュー でその話題が出ていますね。 ここでいう map と collect とは、Enumerable#map メソッドと Enumerable#collect メソッドのことですが、リファレンスマニュアルを見ていただくと分かる通り、どちらも全く同じ動作をするメソッドになります。 そして Enumerable モジュールには reduce と inject というメソッドもあります。「map 派?collect 派?」という質問よりは聞かれる可能性が低いと思いますが、reduce 派か inject 派かを問われることがあるかもしれません。リファレンスマニュアルで Enumerable#reduce メソッドと Enumerable#inject メソッドを見ると、やはりこの二つのメソッドは全く同じ動作をします。 それでは、なぜ同じ機能に違う名前が付いているのでしょうか。今回の記事では、map と collect、reduce と inject それぞれの名前の由来を紐解きつつ、その発想の違いを見ていきたいと思います。

Full article: http://jp.rubyist.net/magazine/?0038-MapAndCollect#l6

Tweets

Fiberのメモ >> Rubyist Magazine - Fiber と Proc ―― ...

jp.rubyist.net 12 Aug '12, 8am

乱暴にまとめてしまうと、Fiber は「手続きと、それをどこまで実行したか」をオブジェクトにしたもので、呼び出すたびに「どこまで実行したか」の状態が少しずつ進んでいくため、プログラムを順番に実行していく手続き型言語の発想をオブジェクト指向言語に...