delete_ifとreject!

プログラミング言語 Ruby リファレンスマニュアル
delete_if {|x| ... }
reject! {|x| ... }

要素を順番にブロックに渡して評価し、その結果が真になった要素をすべて削除します。

delete_if は常に self を返しますが、reject! は要素が 1 つ以上削除されれば self を、 1 つも削除されなければ nil を返します

reject!の挙動にちょっとはまった。