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: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>