From: Benoit Daloze Date: 2012-03-16T20:49:41+09:00 Subject: [ruby-core:43344] [ruby-trunk - Bug #6158][Open] Enumerator::Lazy#take: should it be lazy? Issue #6158 has been reported by Benoit Daloze. ---------------------------------------- Bug #6158: Enumerator::Lazy#take: should it be lazy? https://bugs.ruby-lang.org/issues/6158 Author: Benoit Daloze Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.0.0dev (2012-03-15 trunk 35042) [x86_64-darwin10.8.0] Hello, I noticed #take is now defined on Enumerator::Lazy, and it has lazy behavior: (1..1000).lazy.select(&:even?).take 3 # => # I would expect #take to not be lazy and always produce an Array, like the original Enumerable#take does. I think many rubyists would expect that too. Do you have a use case for a lazy #take ? I can't find one right now. I've seen #6152, although I can't read it. I think `lazy.take(5)` should be equal to `lazy.first(5)` and it reads better. -- http://bugs.ruby-lang.org/