[#49148] Ruby 1.9で、バイト長の部分文字列を作りたくて悩んでます — Daisuke Yokotsuka <yokots_d@...3-net.ne.jp>

はじめまして。横塚と申します。

16 messages 2013/01/29

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

From: 小田 利通 <oda@...>
Date: 2013-01-31 23:16:53 UTC
List: ruby-list #49170
H.Hiro さん、こんにちは。 小田です。

》で英語でぐぐってたら、4年ほど前に同じ提案がなされていて、knu氏が提案不採用という裁決を出しています。

一度議論されて結論が出ていれば、納得です。
(私のぐるり方が悪く見つけられなかった)

》- Enumeratorを連結するというのが、そんなに普通に使われることなのか判断しかねる

第1水準、第2水準の漢字の表を作ろうと思って、sjis コードで出力(内部的には
後に utf-8 にエンコード)しようとしたときに、 sjis の空いている部分を作るために
必要になりました。現実世界には欠番のある列挙は結構あると思います。

あらきさんへのメールを書いているときに思ったのは、+演算子はわかりにくいわけでは
ないが、他の演算子や Range の + 演算子についてはどうあるべきか分からないので、
 +演算子の振る舞いだけを決めてしまうのは良くないかもという気はしました。

》- 現状では、(自前で上記の小田さんのような定義をするのでなければ)一旦to_aしてから連結することになり、処理効率の面でも悪い

ブロックで処理したいことを Proc.new で生成してから、呼び出す方法や、
[enumurator1, enumurator2, ...].each {|enumurator| enumurator.each {|element| ...
とする方法もあるけど、スマートじゃないですね。


In This Thread