From: knu@... Date: 2017-10-22T05:49:03+00:00 Subject: [ruby-core:83496] [Ruby trunk Feature#4553][Rejected] Add Set#pick and Set#pop Issue #4553 has been updated by knu (Akinori MUSHA). Status changed from Assigned to Rejected As marcandre says, this `pick` method does exactly what `first` does, and I'm not sure if `pop` would be an important primitive method. Array now has `sample` that picks a random element(s) from an array without deleting it which may or may not be the function you want, but I can't think of a way to randomly pick a key from a hash at O(1) cost, at least with a pure ruby implementation. ---------------------------------------- Feature #4553: Add Set#pick and Set#pop https://bugs.ruby-lang.org/issues/4553#change-67508 * Author: adgar (Michael Edgar) * Status: Rejected * Priority: Normal * Assignee: knu (Akinori MUSHA) * Target version: next minor ---------------------------------------- =begin A very common operation on sets is to take an arbitrary element from them at O(1) cost. I know typically it's suggested that library additions go out as a gem to see community review. However, to me it seems to be a glaring omission to lack such an operation on a built-in, fundamental data structure, so I've gone straight to the bug tracker. I wasn't too sure which method names to use as I've often heard "take" in lieu of "pop," so I just used the names Wikipedia uses. Consider them flexible. "Pick" selects an arbitrary element, and "pop" selects and deletes it. I've provided a very simple patch that implements the necessary behavior. Thoughts? =end ---Files-------------------------------- pick_pop.diff (1.06 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: