Ciao:
h = {'a' => 1, 'b' => 2, 'c' => 3}
selected = h.select {|key, val| key < 'b' or val > 2}
e giustamente:
selected #=> {"a"=>1, "c"=>3}
Ora, sempre nella classe Hash, il metodo partition dovrebbe avere un
comportamento simile, e restituire due Hash:
selected, discarded = h.partition {|key, val| key < 'b' or val > 2}
invece:
selected #=> [["a", 1], ["c", 3]]
discarded #=> [["b", 2]]
quando mi sembrerebbe più pulito e coerente ottenere:
selected #=> {"a" => 1, "c" => 3}
discarded #=> {"b" => 2}
So che è facilissimo convertire gli Array di sopra negli Hash di sotto,
ma mi chiedo il motivo di tale inconsistenza in core ruby. Cosa mi
sfugge?
Grazie,
Guido
P.S. faccio riferimento a ruby1.9, non so come si comporta 1.8.