From: "shugo (Shugo Maeda)" Date: 2012-04-01T09:05:58+09:00 Subject: [ruby-core:44030] [ruby-trunk - Feature #6240] Enumerable#drop with negative argument Issue #6240 has been updated by shugo (Shugo Maeda). marcandre (Marc-Andre Lafortune) wrote: > Currently, Enumerable#drop works only for non-negative arguments. > > It could be extended so that negative arguments means dropping from the end: > > [:hello, :world].drop(-1) # => [:hello] > > This could especially be interesting for `Lazy#drop`, which would keep a circular buffer of elements before yielding them. > > (1..6).lazy.drop(-3).each{|x| puts x} # -> prints 1, 2 and 3 > > Thoughts? How Enumerable#drop can know the total number of elements? The source of elements might be IO. Besides that, the total number of elements might be infinite. ---------------------------------------- Feature #6240: Enumerable#drop with negative argument https://bugs.ruby-lang.org/issues/6240#change-25557 Author: marcandre (Marc-Andre Lafortune) Status: Open Priority: Normal Assignee: Category: core Target version: 2.0.0 Currently, Enumerable#drop works only for non-negative arguments. It could be extended so that negative arguments means dropping from the end: [:hello, :world].drop(-1) # => [:hello] This could especially be interesting for `Lazy#drop`, which would keep a circular buffer of elements before yielding them. (1..6).lazy.drop(-3).each{|x| puts x} # -> prints 1, 2 and 3 Thoughts? -- http://bugs.ruby-lang.org/