[#30408] Ruby 1.8.6 preview2 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 preview2 をリリースしました。

20 messages 2007/02/24
[#30414] fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Hidetoshi NAGAI <nagai@...> 2007/02/25

永井@知能.九工大です.

[#30418] Re: fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Nobuyoshi Nakada <nobu@...> 2007/02/25

なかだです。

[ruby-dev:30424] Re: Arrayのメソッド増強について

From: Tadashi Saito <[email protected]>
Date: 2007-02-26 05:09:29 UTC
List: ruby-dev #30424
斎藤と申します。Haskellを知らない素人がしゃしゃり出るのもあれなのです
が、知らない人間として考えたことを投稿してみます。

On Mon, 26 Feb 2007 12:21:59 +0900
Yukihiro Matsumoto <[email protected]> wrote:

> |--- Array#take {|item| .... }   別名案:take_while, slice{}

takeだと、単語として抽象的過ぎないでしょうか。中身を「取って来る」
メソッドは既存の中にいくつもありますし。

また、Haskellを知らない人に取っては類推も効かないと思います。例えば take
追加後にRubyを勉強した人が fetch も勉強した後、どっちがどっちか分からな
くなりそうで心配です。

加えて「重複のないselect」という意味合いも、名前からは伝わらないと思い
ます。

>  ary.take(n)            # 最初のn要素

ary.first(n)の方が意味がはっきりしているので、別名を追加してもあまりうれ
しくないと思います。

> |--- Array#drop {|item| .... }   別名案:lstrip, drop_while,

上記のselectとの類比と同じく「重複のないreject」と見た時、やはり分かり辛
いと思います。


と、否定的な意見だけでは生産的でないので、代案があるべきですよね。
うーん…。

上記2つのブロック付きの物については、青木さんは
  ary.uniq.select {...} 
が長過ぎる(効率も悪そう)という意見なのだと推測しました。でしたらselect
に、重複を残すかどうかのオプション引数(真偽値)を許すいうのはどうで
しょうか。
  ary.select(nil) {...} 
うーん、わざとfalseを避けてもまったく短くなっていない…。
(というオチですみません)

--
斎藤ただし

In This Thread