[ruby-list:491] bugreports(Enum#find/find_all, ruby-mode.el) and Requests

From: keiju@... (Keiju ISHITSUKA)
Date: 1996-09-10 10:41:48 UTC
List: ruby-list #491
けいじゅ@SHLジャパンです. 

バグレポートとリクエストです.

1. Enumerable#find/find_all

a = [1, 2, 3, 4]
elm = a.find{|e|
  e == 2 or e == 4
}
---
TRUE

a = [1, 2, 3, 4]
elm = a.find_all{|e|
  e == 2 or e == 4
}
---
Segmentation Falt

2. ruby-mode.el

?/ があるとインデントが狂うようです.


3. String#gsub!

以下のはバグではありません.

a = "abc"
a.gsub!(/(a)b(c)/, $1 + "B" + $2)
print a
--
B

これは,

a.gsub!(/(a)b(c)/, "\\1B\\2")
a.gsub!(/(a)b(c)/){$1 + "B" + $2}

などと等価だと思っていました. 

絶対バグだと思ったのですが, 良く考えてみるとおかしくないんですね. 間違
いやすい例としてFAQにでもいれておいて下さい.

ここからはリクエストです.

4. Enum#max{...},min{...}

Enumerableにはmax/minがありますが, sortと同じようにイテレータを受け付
けるようにしてください.

例:

[[key, value], ...].max{|a, b| a[0] <=> b[0]}

5. Enum#members(VAL) Enum#members(VAL){...}

Enumerable#grepの == 比較版です. 

これには, 裏がありまして... 
現在findモジュールを進化(?)させてクラスにしようとしています. で,
Enumerableをインクルードしているのですが...

find  = Find.new("/")
find.grep(/.../){|file| ...}

と同様に

find.members("..."){|file| ...}

が一般のEnumerableにも摘要できれば良いなと思ったのでした. 

もっとも, Find#membersは, 完全一致ではあまり意味がなく部分一致ですので,
そのまま使うわけには行かないのですが...

__
.........................................石塚 圭樹@SHLジャパン(株)...
------------>アドレス変わりました!! e-mail: keiju@shljapan.co.jp <----

In This Thread

Prev Next