Issue #13102 has been updated by Eregon (Benoit Daloze).
This is at least inconsistent with Array#delete, which could be used for the same case as above but doesn't end with a `?`.
I don't think there are many good examples for predicates with side effects, is it?
A good part of the Set API is quite inconsistent with the rest, unfortunately (e.g., Set#merge being inplace).
Maybe we could slowly deprecate these inconsistent methods and align the API with Array and Hash?
----------------------------------------
Bug #13102: Confusing method name: Set#delete?
https://bugs.ruby-lang.org/issues/13102#change-80967
* Author: kaikuchn (Kai Kuchenbecker)
* Status: Rejected
* Priority: Normal
* Assignee:
* Target version:
* ruby -v: 2.4.0
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
Greetings,
a colleague of mine who recently started to learn Ruby managed to greatly confuse me today when he used Set#delete? which he claimed would delete an item from a set.
Reading the documentation I suspect the method was meant to be named delete! as it behaves similiar to Array#uniq! and such methods.
If this is not a mistake, I'd still suggest to change the method name since I think it is very surprising for a method ending in a question mark to have a side effect.
Best regards,
Kai
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>