From: siena@... (Siena.) Date: 2002-06-02T22:44:51+09:00 Subject: [ruby-dev:17277] Re: [ruby-list:35305] Re: ((1.2)..(3.4)).to_a Siena. です。 ▼ [ruby-dev:17273] < Yukihiro Matsumoto さん 》|Enumerable のメソッドは、Enumerable としての挙動をとって欲しいです。 》|クラス単体で見た場合に Enumerable と異なる挙動であった方が自然であっても、 》|Enumerable であるとみなして扱う時に Range を特別扱いしないとなりません。 》 》こういう発言というのは Enumerable を include しているクラス 》は Enumerable であるという静的型の発想に基づいていませんか? そうですね。それにとらわれすぎているかもしれません。 Ruby 的ではないという事ですので、分割案は取り下げます。 》Rubyでは Enumerable は each をベースにした一連のメソッドの実 》装を追加する単位に過ぎず、「Enumerableであるとみなして扱う」 》ことを強く想定してはいません。 なるほど。勉強になりました。 すると、自作ライブラリの説明で、「Enumerable な オブジェクトを受け取って、これこれの動作を行なう」 というように書くのは厳密には正しくないわけですね。 Enumerable である事が規約となりえないという事は、 ユーザに実装を見せずに確実に利用させるためには、 「受け取るオブジェクトのどのメソッドがどういう挙動をとるか」 を前提として説明しておく事が望ましいと理解しました。 もちろん、実際にはそこまで神経質にやる事はないと思います ^^; --- Siena.