[#29700] ruby NKF モジュールの CP932 系エンコーディングパッチ — MORIYAMA Masayuki <moriyama@...>

ミラクルリナックスの森山です。

10 messages 2006/10/27

[#29726] cgi.rbのDoS脆弱性について — MoonWolf <moonwolf@...>

MoonWolfです。

74 messages 2006/10/31
[#29728] Re: cgi.rbのDoS脆弱性について — Yukihiro Matsumoto <matz@...> 2006/11/01

まつもと ゆきひろです

[#29729] Re: cgi.rbのDoS脆弱性について — MoonWolf <moonwolf@...> 2006/11/01

MoonWolfです。

[#29731] Re: cgi.rbのDoS脆弱性について — Yukihiro Matsumoto <matz@...> 2006/11/01

まつもと ゆきひろです

[#29745] Re: cgi.rbのDoS脆弱性について — MoonWolf <moonwolf@...> 2006/11/02

MoonWolfです。

[#29751] Re: cgi.rbのDoS脆弱性について — "U.Nakamura" <usa@...> 2006/11/02

こんにちは、なかむら(う)です。

[#29753] Re: cgi.rbのDoS脆弱性について — MoonWolf <moonwolf@...> 2006/11/03

MoonWolfです。

[#29754] Re: cgi.rbのDoS脆弱性について — "U.Nakamura" <usa@...> 2006/11/03

こんにちは、なかむら(う)です。

[#29756] Re: cgi.rbのDoS脆弱性について — MoonWolf <moonwolf@...> 2006/11/03

MoonWolfです。

[#29759] Re: cgi.rbのDoS脆弱性について — "U.Nakamura" <usa@...> 2006/11/03

こんにちは、なかむら(う)です。

[#29780] Re: cgi.rbのDoS脆弱性について — MoonWolf <moonwolf@...> 2006/11/04

MoonWolfです。

[#29784] Re: cgi.rbのDoS脆弱性について — "U.Nakamura" <usa@...> 2006/11/04

こんにちは、なかむら(う)です。

[#29786] Re: cgi.rbのDoS脆弱性について — MoonWolf <moonwolf@...> 2006/11/04

MoonWolfです。

[#29791] Re: cgi.rbのDoS脆弱性について — Yukihiro Matsumoto <matz@...> 2006/11/04

まつもと ゆきひろです

[#29811] Re: cgi.rbのDoS脆弱性について — MoonWolf <moonwolf@...> 2006/11/05

MoonWolfです。

[#29818] Re: cgi.rbのDoS脆弱性について — Yukihiro Matsumoto <matz@...> 2006/11/05

まつもと ゆきひろです

[#29826] Re: cgi.rbのDoS脆弱性について — MoonWolf <moonwolf@...> 2006/11/05

MoonWolfです。

[#29761] Re: cgi.rbのDoS脆弱性について — 植田 裕之 <ueda@...> 2006/11/03

植田と申します。

[#29764] Re: cgi.rbのDoS脆弱性について — Yukihiro Matsumoto <matz@...> 2006/11/03

まつもと ゆきひろです

[ruby-dev:29689] Re: Enumerable#each_* and Enumerable#enum_* on 1.9

From: "U.Nakamura" <usa@...>
Date: 2006-10-23 06:10:58 UTC
List: ruby-dev #29689
こんにちは、なかむら(う)です。

In message "[ruby-dev:29688] Re: Enumerable#each_* and Enumerable#enum_* on 1.9"
    on Oct.23,2006 13:17:39, <matz@ruby-lang.org> wrote:
| |>   String.each_line.map{|x| x*2}
| |>
| |> のようなケースは何をやっているのかはっきり分かります。要する
| |> に、要素をひとつずつ与えるようなブロックの使い方をするメソッ
| |> ド(仮にeach系と呼びましょう)以外は、Enumerable::Enumeratorを
| |> 返しても全然嬉しくないということです。
| |
| |enum.map.with_index とか eanum.find.with_index のようにEnumeratorのメ
| |ソッドと組み合わせて使うもんじゃないでしょうか。
| 
| enum.map{}.with_indexとかならともかく、enum.map.with_indexに
| なんの意味があるのかと。意味的にはenum.to_a.each_with_index
| と同じわけですから。

いやいや、eachとmapには戻り値が違うという決定的な差があります。
よって、
  p enum.map.with_index{|e,i|...}   #(A)
と書くことができなくなると、同じことを実現するためには、
  a = []; enum.to_a.each_with_index{|e,i|a<<...}; p a   #(B)
または
  p enum.to_enum(:map).with_index{|e,i|...}   #(C)
という記述が必要になります。


そもそも、Enumerable::Enumeratorは、内部的でeachを決めうちで
使うブロック付きメソッドでeach以外を使ってほしい場合があるか
ら考案されたものだと理解しています。
つまり、(B)のように書くのがアホみたいだから(C)と書けるように
した、ということですね。
そして、1.9の現状の仕様は、(C)といちいち書くより(A)と書けた方
が嬉しいじゃん、ということだと思っていたのですが...


| |迂遠な書き方も可能だから、便利な(場合もある)ものを廃止するというのは、
| |あまり嬉しくないような気がします。
| 
| 「便利な場合が思いつかないから廃止しよう」と言ってるわけです
| から、「便利な場合がある」なら廃止しません。

こんなことに使ったりしてます。便利です。
http://www.garbagecollect.jp/~usa/d/200608a.html#id20060810_P1


それでは。
-- 
U.Nakamura <usa@garbagecollect.jp>



In This Thread