咳です。 > |>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