Method: Enumerable#drop_lz
- Defined in:
- lib/enumerable_lz/enumerable_ex.rb
#drop_lz(n) ⇒ Enumerator::Filter
Note:
available only requiring “enumerable_lz/enumerable_ex”
lazy equivalent of ‘Enumerable#drop`
48 49 50 51 52 53 54 |
# File 'lib/enumerable_lz/enumerable_ex.rb', line 48 def drop_lz n raise ArgumentError, "attempt to take negative size" if n < 0 # each_with_index.filter{|el,idx|idx >= n}.transform{|el,idx|el} # cnt = 0 # filter_with_initproc(Proc.new{cnt=0}) {|el| (cnt+=1) > n} filter.with_index {|el, i| i >= n} end |