咳です。

> |>Array#find_all
> |
> |全然話しが違うんですが, これselectとaliasしません? 
> |ソケットのselectとは大部違いますが... sqlのselectと似ているし...
> 
> いやあ,昔はSmalltalkのselect兄弟をイメージして
> 
>         collect
>         select(->find_all)
>         detect(->find)
> 
> を用意してたんですけど,injectとか見るにいたって(というのは
> 冗談ですが),日本人にはよく分からんとか思ってなくしちゃった
> んですよね.関数メソッドのselectとの名称重複もちょっと気になっ
> たし.複数の方がこれで良いとおっしゃるのなら,復活させても構
> いません.

collect, find_all とちょっと似ている delete_if について
教えて下さい。

# ruby -v
ruby 1.2(98/12/25) [i586-linux]
# irb
irb(main):001:0> ['a', 'b', 'c'].delete_if {false}
["a", "b", "c"]
irb(main):002:0> ['a', 'b', 'c'].delete_if {true}
[]
irb(main):003:0> ['a', 'b', 'c'].delete_if {nil}
[]
irb(main):004:0> ['a', 'b', 'c'].delete_if {|e| e=='a'}
["b", "c"]
irb(main):005:0> ['a', 'b', 'c'].delete_if {|e| e=~/a/}
[]

となります。ブロックの値が true の要素を削除するんだと
思っていたのですが、nilでもtrueでも削除されるようです。
# というか、falseを返したときだけ削除されない

if と同じ挙動の方がわかりやすい気がしますが、
そういうものなんでしょうか?

-- 
seki