From: knu@... Date: 2019-01-10T08:30:46+00:00 Subject: [ruby-core:90982] [Ruby trunk Feature#6240] Enumerable#drop with negative argument Issue #6240 has been updated by knu (Akinori MUSHA). Using an existing feature, `[1,2,3,4,5].lazy.drop(-n)` could be written as `[1,2,3,4,5].each_cons(n+1).lazy.map(&:first)`. Enumerable#each_cons does not use a circular buffer, though. (It currently uses push & shift) ---------------------------------------- Feature #6240: Enumerable#drop with negative argument https://bugs.ruby-lang.org/issues/6240#change-76199 * Author: marcandre (Marc-Andre Lafortune) * Status: Feedback * Priority: Normal * Assignee: matz (Yukihiro Matsumoto) * Target version: ---------------------------------------- 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? -- https://bugs.ruby-lang.org/ Unsubscribe: