https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2011-05-08T23:01:18Z
Ruby Issue Tracking System
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16804
2011-05-08T23:01:18Z
shyouhei (Shyouhei Urabe)
shyouhei@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Assigned</i></li></ul>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16805
2011-05-08T23:23:09Z
mame (Yusuke Endoh)
mame@ruby-lang.org
<ul></ul><p>遠藤です。</p>
<p>2011年5月8日23:01 Shyouhei Urabe <a href="mailto:shyouhei@ruby-lang.org" class="email">shyouhei@ruby-lang.org</a>:</p>
<blockquote>
<p>というわけでmapなんだけど配列じゃなくてEnumeratorを返すmapの変種があ<br>
るといいとおもうのですがどうでしょうか。</p>
</blockquote>
<p>賛成です。以下のようなコードを書くときいつも気になってました。</p>
<p>big_ary.map {|x| ... }.max</p>
<p>ただ、map だけでなく、select や take にも適用できる convension<br>
を決めるべきだと思います。</p>
<p>「遅延評価」の英語は、普通は lazy か delay だと思います。<br>
rude というのを聞いたことがありません。ただいずれにしても 5 文字<br>
以上の追加は長すぎるように思います。</p>
<p>遠藤はかつて -er (-or) の接尾辞を提案しました (つまり mapper) 。<br>
<a href="http://d.hatena.ne.jp/ku-ma-me/20091111/p2" class="external">http://d.hatena.ne.jp/ku-ma-me/20091111/p2</a></p>
<p>以下の方は _lz の接尾辞を提案されています。<br>
<a href="https://github.com/antimon2/enumerable_lz/tree/master/lib/enumerable_lz" class="external">https://github.com/antimon2/enumerable_lz/tree/master/lib/enumerable_lz</a></p>
<blockquote>
<p>いきなりmapの戻り値の型が変わるのでも私はいいですけど<br>
ちょっとやりすぎかとも思います。</p>
</blockquote>
<p>2.0 でなら、これもいいと思います。</p>
<p>--<br>
Yusuke Endoh <a href="mailto:mame@tsg.ne.jp" class="email">mame@tsg.ne.jp</a></p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16806
2011-05-08T23:23:10Z
mame (Yusuke Endoh)
mame@ruby-lang.org
<ul></ul><p>遠藤です。</p>
<p>2011年5月8日23:01 Shyouhei Urabe <a href="mailto:shyouhei@ruby-lang.org" class="email">shyouhei@ruby-lang.org</a>:</p>
<blockquote>
<p>というわけでmapなんだけど配列じゃなくてEnumeratorを返すmapの変種があ<br>
るといいとおもうのですがどうでしょうか。</p>
</blockquote>
<p>賛成です。以下のようなコードを書くときいつも気になってました。</p>
<p>big_ary.map {|x| ... }.max</p>
<p>ただ、map だけでなく、select や take にも適用できる convension<br>
を決めるべきだと思います。</p>
<p>「遅延評価」の英語は、普通は lazy か delay だと思います。<br>
rude というのを聞いたことがありません。ただいずれにしても 5 文字<br>
以上の追加は長すぎるように思います。</p>
<p>遠藤はかつて -er (-or) の接尾辞を提案しました (つまり mapper) 。<br>
<a href="http://d.hatena.ne.jp/ku-ma-me/20091111/p2" class="external">http://d.hatena.ne.jp/ku-ma-me/20091111/p2</a></p>
<p>以下の方は _lz の接尾辞を提案されています。<br>
<a href="https://github.com/antimon2/enumerable_lz/tree/master/lib/enumerable_lz" class="external">https://github.com/antimon2/enumerable_lz/tree/master/lib/enumerable_lz</a></p>
<blockquote>
<p>いきなりmapの戻り値の型が変わるのでも私はいいですけど<br>
ちょっとやりすぎかとも思います。</p>
</blockquote>
<p>2.0 でなら、これもいいと思います。</p>
<p>--<br>
Yusuke Endoh <a href="mailto:mame@tsg.ne.jp" class="email">mame@tsg.ne.jp</a></p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16810
2011-05-09T00:23:06Z
shyouhei (Shyouhei Urabe)
shyouhei@ruby-lang.org
<ul></ul><p>(05/08/2011 11:21 PM), Yusuke ENDOH wrote:</p>
<blockquote>
<p>遠藤です。</p>
<p>2011年5月8日23:01 Shyouhei Urabe <a href="mailto:shyouhei@ruby-lang.org" class="email">shyouhei@ruby-lang.org</a>:</p>
<blockquote>
<p>というわけでmapなんだけど配列じゃなくてEnumeratorを返すmapの変種があ<br>
るといいとおもうのですがどうでしょうか。</p>
</blockquote>
<p>賛成です。以下のようなコードを書くときいつも気になってました。</p>
<p>big_ary.map {|x| ... }.max</p>
</blockquote>
<p>たぶん def _map; Enumerator.new {|y| each {|i| y << yield(i) } }; end<br>
はみんな一回は書いたことがあると思うので、需要はほぼ問題ないかと思います</p>
<blockquote>
<p>ただ、map だけでなく、select や take にも適用できる convension<br>
を決めるべきだと思います。</p>
</blockquote>
<p>まあ、そうなればいいのは間違いないですけども、話を大きくしすぎるのも発散して終<br>
了するいつものパターンになりそうな気もするので。堅実に攻めたいと思います。</p>
<blockquote>
<p>「遅延評価」の英語は、普通は lazy か delay だと思います。<br>
rude というのを聞いたことがありません。ただいずれにしても 5 文字<br>
以上の追加は長すぎるように思います。</p>
</blockquote>
<p>遅延評価であるとみなせるのは事実としても遅延評価っていう言い方をしなきゃいけな<br>
いことはないですよね。特に私の用途の場合は途中で配列を作らないというだけの話で<br>
あって、結局全部評価するわけですし。</p>
<p>あとまあ、とりあえず名前がしっくり来ないときは長めの名前にしといて後から短いや<br>
つを考えるというのは定石かと。べつにどうしてもrudeじゃなきゃいかんという信念が<br>
あるわけではないです。</p>
<blockquote>
<blockquote>
<p>いきなりmapの戻り値の型が変わるのでも私はいいですけど<br>
ちょっとやりすぎかとも思います。</p>
</blockquote>
<p>2.0 でなら、これもいいと思います。</p>
</blockquote>
<p>mathnみたいにrequireすると挙動が上書きされて、いやでもそれは状態がグローバルだ<br>
からよくなくてselector namespaceがないと、でもそれはやっぱ話が大きくなりすぎだ<br>
なあ。</p>
<p>やっぱmapがいきなり変わるのは堅実ではないので、実装としては今回提案したものを<br>
推していきたい(+名前変更とか)ですね。</p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16811
2011-05-09T00:23:06Z
shyouhei (Shyouhei Urabe)
shyouhei@ruby-lang.org
<ul></ul><p>(05/08/2011 11:21 PM), Yusuke ENDOH wrote:</p>
<blockquote>
<p>遠藤です。</p>
<p>2011年5月8日23:01 Shyouhei Urabe <a href="mailto:shyouhei@ruby-lang.org" class="email">shyouhei@ruby-lang.org</a>:</p>
<blockquote>
<p>というわけでmapなんだけど配列じゃなくてEnumeratorを返すmapの変種があ<br>
るといいとおもうのですがどうでしょうか。</p>
</blockquote>
<p>賛成です。以下のようなコードを書くときいつも気になってました。</p>
<p>big_ary.map {|x| ... }.max</p>
</blockquote>
<p>たぶん def _map; Enumerator.new {|y| each {|i| y << yield(i) } }; end<br>
はみんな一回は書いたことがあると思うので、需要はほぼ問題ないかと思います</p>
<blockquote>
<p>ただ、map だけでなく、select や take にも適用できる convension<br>
を決めるべきだと思います。</p>
</blockquote>
<p>まあ、そうなればいいのは間違いないですけども、話を大きくしすぎるのも発散して終<br>
了するいつものパターンになりそうな気もするので。堅実に攻めたいと思います。</p>
<blockquote>
<p>「遅延評価」の英語は、普通は lazy か delay だと思います。<br>
rude というのを聞いたことがありません。ただいずれにしても 5 文字<br>
以上の追加は長すぎるように思います。</p>
</blockquote>
<p>遅延評価であるとみなせるのは事実としても遅延評価っていう言い方をしなきゃいけな<br>
いことはないですよね。特に私の用途の場合は途中で配列を作らないというだけの話で<br>
あって、結局全部評価するわけですし。</p>
<p>あとまあ、とりあえず名前がしっくり来ないときは長めの名前にしといて後から短いや<br>
つを考えるというのは定石かと。べつにどうしてもrudeじゃなきゃいかんという信念が<br>
あるわけではないです。</p>
<blockquote>
<blockquote>
<p>いきなりmapの戻り値の型が変わるのでも私はいいですけど<br>
ちょっとやりすぎかとも思います。</p>
</blockquote>
<p>2.0 でなら、これもいいと思います。</p>
</blockquote>
<p>mathnみたいにrequireすると挙動が上書きされて、いやでもそれは状態がグローバルだ<br>
からよくなくてselector namespaceがないと、でもそれはやっぱ話が大きくなりすぎだ<br>
なあ。</p>
<p>やっぱmapがいきなり変わるのは堅実ではないので、実装としては今回提案したものを<br>
推していきたい(+名前変更とか)ですね。</p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16813
2011-05-09T01:23:10Z
mame (Yusuke Endoh)
mame@ruby-lang.org
<ul></ul><p>遠藤です。</p>
<p>2011年5月9日0:07 Urabe Shyouhei <a href="mailto:shyouhei@ruby-lang.org" class="email">shyouhei@ruby-lang.org</a>:</p>
<blockquote>
<p>遅延評価であるとみなせるのは事実としても遅延評価っていう言い方をしなきゃいけな<br>
いことはないですよね。</p>
</blockquote>
<p>絶対にいけないことはないですが、一般的な言葉があるならなるべく合わせる<br>
べきでしょう。</p>
<blockquote>
<p>特に私の用途の場合は途中で配列を作らないというだけの話で<br>
あって、結局全部評価するわけですし。</p>
</blockquote>
<p>中間データ生成の省略は遅延評価のありがたみの 1 つです。<br>
「結局全部評価する」かどうかは関係ないと思います。</p>
<blockquote>
<blockquote>
<blockquote>
<p>いきなりmapの戻り値の型が変わるのでも私はいいですけど<br>
ちょっとやりすぎかとも思います。</p>
</blockquote>
<p>2.0 でなら、これもいいと思います。</p>
</blockquote>
<p>mathnみたいにrequireすると挙動が上書きされて、いやでもそれは状態がグローバルだ<br>
からよくなくてselector namespaceがないと、でもそれはやっぱ話が大きくなりすぎだ<br>
なあ。</p>
</blockquote>
<p>2.0 なら selector namespace (というか refinement) が入っているはず、<br>
とか。<br>
互換性が問題なら、Enumerator の #[] とかを呼び出したら勝手に Array に<br>
化ける、とか。</p>
<p>とはいえとりあえず 1.9 の間で凌ぐ術がほしい気持ちもわかるので、うーん、<br>
-er がダメなら接尾辞 L はどうでしょう。mapL とか selectL とか。<br>
2.0 までに投げ捨てたくなる名前、という意味では rude_ もいいのかなあ。</p>
<p>--<br>
Yusuke Endoh <a href="mailto:mame@tsg.ne.jp" class="email">mame@tsg.ne.jp</a></p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16814
2011-05-09T01:23:11Z
mame (Yusuke Endoh)
mame@ruby-lang.org
<ul></ul><p>遠藤です。</p>
<p>2011年5月9日0:07 Urabe Shyouhei <a href="mailto:shyouhei@ruby-lang.org" class="email">shyouhei@ruby-lang.org</a>:</p>
<blockquote>
<p>遅延評価であるとみなせるのは事実としても遅延評価っていう言い方をしなきゃいけな<br>
いことはないですよね。</p>
</blockquote>
<p>絶対にいけないことはないですが、一般的な言葉があるならなるべく合わせる<br>
べきでしょう。</p>
<blockquote>
<p>特に私の用途の場合は途中で配列を作らないというだけの話で<br>
あって、結局全部評価するわけですし。</p>
</blockquote>
<p>中間データ生成の省略は遅延評価のありがたみの 1 つです。<br>
「結局全部評価する」かどうかは関係ないと思います。</p>
<blockquote>
<blockquote>
<blockquote>
<p>いきなりmapの戻り値の型が変わるのでも私はいいですけど<br>
ちょっとやりすぎかとも思います。</p>
</blockquote>
<p>2.0 でなら、これもいいと思います。</p>
</blockquote>
<p>mathnみたいにrequireすると挙動が上書きされて、いやでもそれは状態がグローバルだ<br>
からよくなくてselector namespaceがないと、でもそれはやっぱ話が大きくなりすぎだ<br>
なあ。</p>
</blockquote>
<p>2.0 なら selector namespace (というか refinement) が入っているはず、<br>
とか。<br>
互換性が問題なら、Enumerator の #[] とかを呼び出したら勝手に Array に<br>
化ける、とか。</p>
<p>とはいえとりあえず 1.9 の間で凌ぐ術がほしい気持ちもわかるので、うーん、<br>
-er がダメなら接尾辞 L はどうでしょう。mapL とか selectL とか。<br>
2.0 までに投げ捨てたくなる名前、という意味では rude_ もいいのかなあ。</p>
<p>--<br>
Yusuke Endoh <a href="mailto:mame@tsg.ne.jp" class="email">mame@tsg.ne.jp</a></p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16820
2011-05-09T17:23:07Z
shyouhei (Shyouhei Urabe)
shyouhei@ruby-lang.org
<ul></ul><p>卜部です。</p>
<p>(05/09/2011 12:35 AM), Yusuke ENDOH wrote:</p>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<p>いきなりmapの戻り値の型が変わるのでも私はいいですけど<br>
ちょっとやりすぎかとも思います。</p>
</blockquote>
<p>2.0 でなら、これもいいと思います。</p>
</blockquote>
<p>mathnみたいにrequireすると挙動が上書きされて、いやでもそれは状態がグローバルだ<br>
からよくなくてselector namespaceがないと、でもそれはやっぱ話が大きくなりすぎだ<br>
なあ。</p>
</blockquote>
<p>2.0 なら selector namespace (というか refinement) が入っているはず、<br>
とか。<br>
互換性が問題なら、Enumerator の #[] とかを呼び出したら勝手に Array に<br>
化ける、とか。</p>
<p>とはいえとりあえず 1.9 の間で凌ぐ術がほしい気持ちもわかるので、うーん、<br>
-er がダメなら接尾辞 L はどうでしょう。mapL とか selectL とか。<br>
2.0 までに投げ捨てたくなる名前、という意味では rude_ もいいのかなあ。</p>
</blockquote>
<p>さすがにキャメルケースはないんじゃないですかねえ(何がないって、前例が...)。個<br>
人的にはmapperはそんなにダメじゃないとおもうんですけど、まあまつもとさんがダ<br>
メって言ってる以上はめがないですよね。</p>
<p>でまあやはりflat_mapがある以上なんとか_mapがいちばん通りやすいと思うんですけど<br>
どうですかね。lazy_mapとか。</p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16821
2011-05-09T17:23:07Z
shyouhei (Shyouhei Urabe)
shyouhei@ruby-lang.org
<ul></ul><p>卜部です。</p>
<p>(05/09/2011 12:35 AM), Yusuke ENDOH wrote:</p>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<p>いきなりmapの戻り値の型が変わるのでも私はいいですけど<br>
ちょっとやりすぎかとも思います。</p>
</blockquote>
<p>2.0 でなら、これもいいと思います。</p>
</blockquote>
<p>mathnみたいにrequireすると挙動が上書きされて、いやでもそれは状態がグローバルだ<br>
からよくなくてselector namespaceがないと、でもそれはやっぱ話が大きくなりすぎだ<br>
なあ。</p>
</blockquote>
<p>2.0 なら selector namespace (というか refinement) が入っているはず、<br>
とか。<br>
互換性が問題なら、Enumerator の #[] とかを呼び出したら勝手に Array に<br>
化ける、とか。</p>
<p>とはいえとりあえず 1.9 の間で凌ぐ術がほしい気持ちもわかるので、うーん、<br>
-er がダメなら接尾辞 L はどうでしょう。mapL とか selectL とか。<br>
2.0 までに投げ捨てたくなる名前、という意味では rude_ もいいのかなあ。</p>
</blockquote>
<p>さすがにキャメルケースはないんじゃないですかねえ(何がないって、前例が...)。個<br>
人的にはmapperはそんなにダメじゃないとおもうんですけど、まあまつもとさんがダ<br>
メって言ってる以上はめがないですよね。</p>
<p>でまあやはりflat_mapがある以上なんとか_mapがいちばん通りやすいと思うんですけど<br>
どうですかね。lazy_mapとか。</p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16851
2011-05-10T14:23:10Z
shyouhei (Shyouhei Urabe)
shyouhei@ruby-lang.org
<ul></ul><p>(05/09/2011 05:21 PM), Akinori MUSHA wrote:</p>
<blockquote>
<p>At Mon, 9 May 2011 16:35:31 +0900,<br>
Urabe Shyouhei wrote:</p>
<blockquote>
<p>でまあやはりflat_mapがある以上なんとか_mapがいちばん通りやすいと思うんですけど<br>
どうですかね。lazy_mapとか。</p>
</blockquote>
<p>ベタ路線なら map_enum がいいと思います。動作を表す語が複数並んで<br>
いたら、返り値は最後の語から判断するものだと思うからです。</p>
</blockquote>
<p>rudeやlazyは動作なのかという疑問(形容詞ですからねえ)をさておくとすると、それな<br>
りに説得力があるように思いました。</p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16852
2011-05-10T14:23:10Z
shyouhei (Shyouhei Urabe)
shyouhei@ruby-lang.org
<ul></ul><p>(05/09/2011 05:21 PM), Akinori MUSHA wrote:</p>
<blockquote>
<p>At Mon, 9 May 2011 16:35:31 +0900,<br>
Urabe Shyouhei wrote:</p>
<blockquote>
<p>でまあやはりflat_mapがある以上なんとか_mapがいちばん通りやすいと思うんですけど<br>
どうですかね。lazy_mapとか。</p>
</blockquote>
<p>ベタ路線なら map_enum がいいと思います。動作を表す語が複数並んで<br>
いたら、返り値は最後の語から判断するものだと思うからです。</p>
</blockquote>
<p>rudeやlazyは動作なのかという疑問(形容詞ですからねえ)をさておくとすると、それな<br>
りに説得力があるように思いました。</p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16856
2011-05-10T23:09:27Z
sorah (Sorah Fukumori)
her@sorah.jp
<ul></ul><p>共通なconvensionを用意すると発散すると書かれていたのにやってしまいましたが、</p>
<p>Enumerator#deferを定義してこのような形にすると良いのではと思いました。</p>
<p>個人的に見栄えはこれが一番しっくりくるなあ、と思います。</p>
<p>[1,2,3].map.defer{|x| x*2 }.each_with_index.map.defer do |x,i|<br>
"#{x}: #{i}"<br>
end.each {|x| puts x }</p>
<p>いかがでしょうか。</p>
<p>パッチ: <a href="https://gist.github.com/964510" class="external">https://gist.github.com/964510</a></p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16860
2011-05-11T09:23:06Z
mame (Yusuke Endoh)
mame@ruby-lang.org
<ul></ul><p>遠藤です。</p>
<p>2011年5月10日23:09 Shota Fukumori <a href="mailto:sorah@tubusu.net" class="email">sorah@tubusu.net</a>:</p>
<blockquote>
<p>共通なconvensionを用意すると発散すると書かれていたのにやってしまいましたが、</p>
<p>Enumerator#deferを定義してこのような形にすると良いのではと思いました。</p>
</blockquote>
<p>見栄えはいいですが、残念ながら共通の convension にはなりません。</p>
<p>$ ./ruby -e 'p [1, 2, 3].select {|x| x.even? }'<br>
[2]</p>
<p>$ ./ruby -e 'p [1, 2, 3].select.defer {|x| x.even? }.to_a'<br>
[false, true, false]</p>
<p>この問題は、map やら select やらが Array を返すこと前提で、内部的に<br>
rb_ary_push を呼んでしまっているため、中間データ生成を回避しようが<br>
ないということです。なので mapL 、selectL というように各メソッドごとに<br>
対応していかざるを得ません。</p>
<p>Enumerator から Array を得るのは to_a 一発なので、デフォルトで<br>
Array ではなく Enumerator を返してくれれば解決なんですが。<br>
互換性以外は。。</p>
<p>--<br>
Yusuke Endoh <a href="mailto:mame@tsg.ne.jp" class="email">mame@tsg.ne.jp</a></p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16861
2011-05-11T09:23:07Z
mame (Yusuke Endoh)
mame@ruby-lang.org
<ul></ul><p>遠藤です。</p>
<p>2011年5月10日23:09 Shota Fukumori <a href="mailto:sorah@tubusu.net" class="email">sorah@tubusu.net</a>:</p>
<blockquote>
<p>共通なconvensionを用意すると発散すると書かれていたのにやってしまいましたが、</p>
<p>Enumerator#deferを定義してこのような形にすると良いのではと思いました。</p>
</blockquote>
<p>見栄えはいいですが、残念ながら共通の convension にはなりません。</p>
<p>$ ./ruby -e 'p [1, 2, 3].select {|x| x.even? }'<br>
[2]</p>
<p>$ ./ruby -e 'p [1, 2, 3].select.defer {|x| x.even? }.to_a'<br>
[false, true, false]</p>
<p>この問題は、map やら select やらが Array を返すこと前提で、内部的に<br>
rb_ary_push を呼んでしまっているため、中間データ生成を回避しようが<br>
ないということです。なので mapL 、selectL というように各メソッドごとに<br>
対応していかざるを得ません。</p>
<p>Enumerator から Array を得るのは to_a 一発なので、デフォルトで<br>
Array ではなく Enumerator を返してくれれば解決なんですが。<br>
互換性以外は。。</p>
<p>--<br>
Yusuke Endoh <a href="mailto:mame@tsg.ne.jp" class="email">mame@tsg.ne.jp</a></p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16862
2011-05-11T09:29:07Z
sorah (Sorah Fukumori)
her@sorah.jp
<ul></ul><p>2011/5/11 Yusuke ENDOH <a href="mailto:mame@tsg.ne.jp" class="email">mame@tsg.ne.jp</a>:</p>
<blockquote>
<p>この問題は、map やら select やらが Array を返すこと前提で、内部的に<br>
rb_ary_push を呼んでしまっているため、中間データ生成を回避しようが<br>
ないということです。なので mapL 、selectL というように各メソッドごとに<br>
対応していかざるを得ません。<br>
たしかに。実装みたらそんな感じでした… 残念。</p>
</blockquote>
<a name="別のクラスを作ってdefermapxとかto_lazymapxとかかなあ"></a>
<h1 >別のクラスを作って、defer.map{|x|...}とかto_lazy.map{|x|...}とかかなあ。<a href="#別のクラスを作ってdefermapxとかto_lazymapxとかかなあ" class="wiki-anchor">¶</a></h1>
<p>こういうインターフェースでスパッと出来る方が見栄えはいいんだけどなあ…</p>
<p>--<br>
Shota Fukumori a.k.a. @sora_h - <a href="http://codnote.net/" class="external">http://codnote.net/</a></p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16863
2011-05-11T09:29:07Z
sorah (Sorah Fukumori)
her@sorah.jp
<ul></ul><p>2011/5/11 Yusuke ENDOH <a href="mailto:mame@tsg.ne.jp" class="email">mame@tsg.ne.jp</a>:</p>
<blockquote>
<p>この問題は、map やら select やらが Array を返すこと前提で、内部的に<br>
rb_ary_push を呼んでしまっているため、中間データ生成を回避しようが<br>
ないということです。なので mapL 、selectL というように各メソッドごとに<br>
対応していかざるを得ません。<br>
たしかに。実装みたらそんな感じでした… 残念。</p>
</blockquote>
<a name="別のクラスを作ってdefermapxとかto_lazymapxとかかなあ"></a>
<h1 >別のクラスを作って、defer.map{|x|...}とかto_lazy.map{|x|...}とかかなあ。<a href="#別のクラスを作ってdefermapxとかto_lazymapxとかかなあ" class="wiki-anchor">¶</a></h1>
<p>こういうインターフェースでスパッと出来る方が見栄えはいいんだけどなあ…</p>
<p>--<br>
Shota Fukumori a.k.a. @sora_h - <a href="http://codnote.net/" class="external">http://codnote.net/</a></p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16913
2011-05-13T04:23:13Z
shyouhei (Shyouhei Urabe)
shyouhei@ruby-lang.org
<ul></ul><p>(05/10/2011 11:09 PM), Shota Fukumori wrote:</p>
<blockquote>
<p>共通なconvensionを用意すると発散すると書かれていたのにやってしまいましたが、</p>
</blockquote>
<p>まあそういうわけで見事に発散しているので。やっぱりとりあえずmapだけに注力した<br>
ほうがいいと思うわけです。とりあえず実装はもう今のでいいんじゃないですかねえ。</p>
<p>名前に関しては今のところlazy_map案とmap_enum案がありますがどうでしょうか。個人<br>
的にはlazy_enumが好きかなと思いますが。</p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16914
2011-05-13T04:23:13Z
shyouhei (Shyouhei Urabe)
shyouhei@ruby-lang.org
<ul></ul><p>(05/10/2011 11:09 PM), Shota Fukumori wrote:</p>
<blockquote>
<p>共通なconvensionを用意すると発散すると書かれていたのにやってしまいましたが、</p>
</blockquote>
<p>まあそういうわけで見事に発散しているので。やっぱりとりあえずmapだけに注力した<br>
ほうがいいと思うわけです。とりあえず実装はもう今のでいいんじゃないですかねえ。</p>
<p>名前に関しては今のところlazy_map案とmap_enum案がありますがどうでしょうか。個人<br>
的にはlazy_enumが好きかなと思いますが。</p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16915
2011-05-13T05:23:12Z
mame (Yusuke Endoh)
mame@ruby-lang.org
<ul></ul><p>遠藤です。</p>
<p>2011年5月13日3:44 Urabe Shyouhei <a href="mailto:shyouhei@ruby-lang.org" class="email">shyouhei@ruby-lang.org</a>:</p>
<blockquote>
<p>名前に関しては今のところlazy_map案とmap_enum案がありますがどうでしょうか。個人<br>
的にはlazy_enumが好きかなと思いますが。</p>
</blockquote>
<p>lazy_enum は lazy_map の typo ですよね?<br>
どうしてもそこから選べと言われたら遠藤も lazy_map に一票です。</p>
<p>ちなみに、</p>
<p><a href="http://d.hatena.ne.jp/ku-ma-me/20091111/p2#c1258760977" class="external">http://d.hatena.ne.jp/ku-ma-me/20091111/p2#c1258760977</a></p>
<p>では matz は enum_map を提案していました。<br>
さらになかださんは -ing という案をあげていました。<br>
個人的には</p>
<p>mapper >= mapping >> mapL >= map_lz >> lazy_map > enum_map > map_enum</p>
<p>です。mapE 、map_e とかでもいいかも。</p>
<p>--<br>
Yusuke Endoh <a href="mailto:mame@tsg.ne.jp" class="email">mame@tsg.ne.jp</a></p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=16916
2011-05-13T05:23:12Z
mame (Yusuke Endoh)
mame@ruby-lang.org
<ul></ul><p>遠藤です。</p>
<p>2011年5月13日3:44 Urabe Shyouhei <a href="mailto:shyouhei@ruby-lang.org" class="email">shyouhei@ruby-lang.org</a>:</p>
<blockquote>
<p>名前に関しては今のところlazy_map案とmap_enum案がありますがどうでしょうか。個人<br>
的にはlazy_enumが好きかなと思いますが。</p>
</blockquote>
<p>lazy_enum は lazy_map の typo ですよね?<br>
どうしてもそこから選べと言われたら遠藤も lazy_map に一票です。</p>
<p>ちなみに、</p>
<p><a href="http://d.hatena.ne.jp/ku-ma-me/20091111/p2#c1258760977" class="external">http://d.hatena.ne.jp/ku-ma-me/20091111/p2#c1258760977</a></p>
<p>では matz は enum_map を提案していました。<br>
さらになかださんは -ing という案をあげていました。<br>
個人的には</p>
<p>mapper >= mapping >> mapL >= map_lz >> lazy_map > enum_map > map_enum</p>
<p>です。mapE 、map_e とかでもいいかも。</p>
<p>--<br>
Yusuke Endoh <a href="mailto:mame@tsg.ne.jp" class="email">mame@tsg.ne.jp</a></p>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=19033
2011-07-10T15:38:30Z
naruse (Yui NARUSE)
naruse@airemix.jp
<ul><li><strong>Target version</strong> changed from <i>1.9.3</i> to <i>2.0.0</i></li></ul>
Ruby master - Feature #4653: [PATCH 1/1] new method Enumerable#rude_map
https://bugs.ruby-lang.org/issues/4653?journal_id=23754
2012-02-13T20:13:37Z
mame (Yusuke Endoh)
mame@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Assigned</i> to <i>Rejected</i></li></ul><p>まつもとさんが <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Feature: Enumerable#lazy (Closed)" href="https://bugs.ruby-lang.org/issues/4890">#4890</a> のやり方がいいと言ったので (<a class="issue tracker-2 status-6 priority-4 priority-default closed" title="Feature: Lazy Enumerator#select, Enumerator#map etc. (Rejected)" href="https://bugs.ruby-lang.org/issues/708">#708</a>) 、<br>
2/8 は Enumerable::Lazy 記念日。</p>
<p>--<br>
Yusuke Endoh <a href="mailto:mame@tsg.ne.jp" class="email">mame@tsg.ne.jp</a></p>