[#49193] [ANN] Ruby 2.0.0-p0 released — Yusuke Endoh <mame@...>

こんにちは。Ruby 2.0.0-p0 をリリースします。

14 messages 2013/02/24
[#49196] [ANN]Ruby-2.0.0-p0 mswin32版 MSI was Re: [ANN] Ruby 2.0.0-p0 released — arton <artonx@...> 2013/02/24

artonです。

[#49216] Windows用 インストーラ無しパッケージの需要について (Re: [ANN]Ruby-2.0.0-p0 mswin32版 MSI was Re: [ANN] Ruby 2.0.0-p0 released) — Takeshi Iogawa <alpha@246.ne.jp> 2013/02/27

いおがわと申します。 Ruby2.0の正式リリースおめでとうございます。

[ruby-list:49178] Re: Enumerator#+

From: 小田 利通 <oda@...>
Date: 2013-02-01 23:42:26 UTC
List: ruby-list #49178
小田です。

class RangeArray や class CC など参考になります。
私の最初のメールの「なぜないのか」という疑問は、ないのじゃなくて私が
見つけられなかっただけで、作っている人はいるという答えをもらったようです。

特定のクラスのオブジェクトの配列を新しいクラスとして定義すること
(例えば、数値の配列のクラスとか、範囲 range の配列のクラスとか)は
よく必要となりますし、作っている人もいますし、私も作ったことがあります。
しかし、そういう配列の標準的な動作仕様を決めるのは、かなり検討が必要だと
思います。

knuさん の class RangeArray は Range の一部の機能(=「ある要素がいずれかの範
囲に含まれるかを効率よく検査する」)を含んだクラスですが、
それでも Range#begin や Range#end に相当するものは(当然なのですが)
なくなっています。
結果として、Enumerator と Range の中間の機能のクラスになっていると思います。
先のメールで Range と Enumurator を間違えた私が書くのも何ですが、
類似したクラスを増やしたくないというのが私の意見です。

この機能のメソッドは、引数を Enumerable なもの、または enumurator そのもので、
返り値は enumerator であって、必要でなければ、新しいクラスを導入しない方が
良いと思います。

H.Hiro さん wrote:
》enum_concat = Enumerator.join(enum1, enum2, enum3)
》enum_concat.each{ |x| ... }

この形いいですね。

In This Thread

Prev Next