[#7968] array .{first, last, at} — Kazunori NISHI <kazunori@...>

西@九大です。

25 messages 1999/10/07
[#7969] Re: array .{first, last, at} — nobu.nakada@... 1999/10/07

なかだです。

[#7983] Re: array .{first, last, at} — Kazunori NISHI <kazunori@...> 1999/10/12

西@九大です。

[#7984] Re: array .{first, last, at} — matz@... (Yukihiro Matsumoto) 1999/10/12

まつもと ゆきひろです

[#7985] [patch] Array#delete_at w/ minus value — EGUCHI Osamu <eguchi@...> 1999/10/12

えぐち@エスアンドイーです。

[ruby-dev:7994] Re: [patch] Array#delete_at w/ minus value

From: EGUCHI Osamu <eguchi@...>
Date: 1999-10-13 03:14:51 UTC
List: ruby-dev #7994
えぐち@エスアンドイー です。

>>> In message [ruby-dev:7991] Re: [patch] Array#delete_at w/ minus value
    On Wed, 13 Oct 1999 11:23:28 +0900, matz@netlab.co.jp (Yukihiro Matsumoto) said:

matz> まつもと ゆきひろです
matz> 
matz> In message "[ruby-dev:7985] [patch] Array#delete_at w/ minus value"
matz>     on 99/10/12, EGUCHI Osamu <eguchi@cagiva.shizuokanet.ne.jp> writes:
matz> 
matz> |負のインデックスを Array の delete_at の引数に
matz> |使えるようにしてみました。
matz> 
matz> これ良いですね。1.5系で取り込みましょう。

おねがいします。

ところで、一晩寝たらいろいろ思い付いたのですが。

 + array[begin..end], array[begin, length] に対応する
   array.delete_at(begin..end), array(begin, length) 
   も組合せ的には、意味ありげですね。
   
 + あと nil のような特殊な変数(定数?) void を導入して。

    * void を代入すると対応する要素削除
    * 範囲外の要素の参照で void を返す

  と言う仕組みを考えてみました。

     a = ["a", "b", "c", "d", "e"]
     a[3] = void
     p a
      => ["a", "b", "c", "e"]
     a[1..2] = void
     p a
      => ["a", "e"]
     p a[100]
      => void

   []= nil と compact! の組合せでも可能ですが、
   本当に nil を入れておきたいケースと両立しません。

   また現状、範囲外の要素への参照は nil ですが、
   これを void とすると nil と識別でき良いと思います。

     void == nil
      => false

   ですが、

      if void then "True" else "False" end)
        => "False"

   のつもりです。(3つめの「偽」と言う事です)

   要素の削除と範囲外の参照の対象は、Array と Hash を考えています。

	えぐち

     a[1..4] = None
     a.delete_if() {|e| e == None }

   で可能ですが、、、

In This Thread