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`

Returns:

Raises:

  • (ArgumentError)


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