| class Lax < Enumerator |
| # previously defined methods go here |
| |
| def select(&block) |
| Lax.new(self) do |yielder, val| |
| yielder << val if block.call(val) |
| end |
| end |
| |
| end |
This one is slightly more challenging, but resembles Lax#take:
| class Lax < Enumerator |
| |
| # previously defined methods go here |
| |
| def drop(n) |
| dropped = 0 |
| Lax.new(self) do |yielder, val| |
| if dropped < n |
| dropped += 1 |
| else |
| yielder << val |
| end |
| end |
| end |
| |
| end |
3.139.97.202