mruby-enum-lazy: add grep_v method

This commit is contained in:
buty4649
2024-02-15 14:55:38 +09:00
parent 3eeeb8fabf
commit 031476a853
2 changed files with 15 additions and 0 deletions
+9
View File
@@ -10,6 +10,7 @@ module Enumerable
# - select find_all
# - reject
# - grep
# - grep_v
# - drop
# - drop_while
# - take_while
@@ -89,6 +90,14 @@ class Enumerator
}
end
def grep_v(pattern)
Lazy.new(self){|yielder, val|
unless pattern === val
yielder << val
end
}
end
def drop(n)
dropped = 0
Lazy.new(self){|yielder, val|
+6
View File
@@ -46,6 +46,12 @@ assert("Enumerator::Lazy#to_enum") do
assert_equal [0*1, 2*3, 4*5, 6*7], lazy_enum.map { |a| a.first * a.last }.first(4)
end
assert("Enumerator::Lazy#grep_v") do
lazy_grep_v = (0..).lazy.grep_v(2..4)
assert_kind_of Enumerator::Lazy, lazy_grep_v
assert_equal [0, 1, 5, 6], lazy_grep_v.first(4)
end
assert("Enumerator::Lazy#zip with cycle") do
e1 = [1, 2, 3].cycle
e2 = [:a, :b].cycle