2011年6月17日金曜日

Pythonのジェネレータと、RubyのFiber

Rubyは以前ちょっと仕事で使ってました。最近は GAE を齧ったりしているので Python を良く使っています。
私の頭のなかでは、両者はそんなに大きく違いません。使ってみた時の「感触」がとても近いと思っています。周辺技術も含めた実用性で少し Python が先行している感じでしょうか。

Rubyは使用頻度が減りましたが、いまも気になる言語です。Rubyist Magazineもちょくちょく覗いています。
今回は Rubyist Magazine からのネタです。下記の記事が非常に面白くて分かりやすい内容でした。
「関数型」と「手続き型」の発想を対比しながら Fiberと Procを説明しています。

Fiber と Proc ―― 手続きを抽象化する二つの機能

Python には「ジェネレータ」という便利な機能があります。これと同じことをしているのが Rubyの Fiberということになります。上記記事の説明によると、Fiberの概念(≒ジェネレータの概念)は関数型の発想ということになります。なるほど。

2つの対比的な概念を並行して説明することで理解しやすくする、というのは上手い説明の手法の一つですね。ジェネレータについていまいちすっきりしてない人は、上記を読んでみると参考になるかもしれません。

投稿者:てらだ

0 件のコメント:

コメントを投稿