[#47955] るびま記事募集:FiberとかSinatra/PadrinoとかBundlerとか — Makoto Kuwata <kwa@...>

桑田といいます。るびま編集部に入りました。

17 messages 2011/04/11

[#48016] 文字列を正規表現にマッチする部分と他の部分に分割 — "5.5" <5.5@...>

5.5 です。

12 messages 2011/04/28

[ruby-list:47985] Re: るびま記事募集:FiberとかSinatra/PadrinoとかBundlerとか

From: Satoshi GUNJI <gunjisatoshi@...>
Date: 2011-04-19 00:48:46 UTC
List: ruby-list #47985
郡司と申します。

> 桑田です。

> そうなんです。
> 「Pythonのgeneratorと同じようなもん」で通じれば話は早いんですけど。

ですね。

(RubyのブロックもPythonのジェネレータも繰り返し以外の用途も
ありますが、代表的な例として)「繰り返しの抽象化」という
動機に対して、

・Pythonはジェネレータ
・Rubyはブロック

を「文法としてサポートしている」のがそれぞれの強みだと
個人的には考えています。

もちろんRubyでもFiberを使えばPythonのジェネレータと
同様のことが出来ますし、Pythonでも高階関数を使えば
Rubyのブロックと同様のことができますが、やはり
文法のサポートが大きい、というのが私の印象です。

そして

・PythonのジェネレータやRubyのFiberは「制御の流れ」
 を抽象化したものなので「手続き型言語的」
・Rubyのブロックは「関数(厳密には違うけれど‥‥)」
 を抽象化したものなので「関数型言語的」

と私は感じます。


> Fiberは1.9のキラー機能だと思うので、Fiberが使いたいから1.8やめて
> 1.9に移行したくなるような解説記事を望んでいます。

手続き型言語・関数型言語のどちらのパラダイムも
重要なのですが、両方知っていたほうが表現の幅が広がるので、
RubyistもFiberを学びましょう‥‥というのでは動機としては
弱いかもしれませんね。

普段からFiberを使って実用的なコードを書かれている方に
解説記事を書いていただけると良いのですが‥‥。

In This Thread