From: "zzak (Zachary Scott)" Date: 2013-06-02T16:31:35+09:00 Subject: [ruby-dev:47392] [ruby-trunk - Bug #7877] E::Lazy#with_index should be lazy Issue #7877 has been updated by zzak (Zachary Scott). Tracker changed from Feature to Bug Subject changed from E::Lazy#with_index needed to E::Lazy#with_index should be lazy Target version changed from next minor to current: 2.1.0 ruby -v set to 2.1.0-dev Backport set to 2.0.0: UNKNOWN ---------------------------------------- Bug #7877: E::Lazy#with_index should be lazy https://bugs.ruby-lang.org/issues/7877#change-39637 Author: shyouhei (Shyouhei Urabe) Status: Assigned Priority: Normal Assignee: yhara (Yutaka HARA) Category: core Target version: current: 2.1.0 ruby -v: 2.1.0-dev Backport: 2.0.0: UNKNOWN =begin So I wanted some real benefit of being lazy. I wrote a Leibniz formula: def leibniz(n) (0..Float::INFINITY).lazy.with_index {|i, j| (-1 ** j) / (2*i+1).to_f }.take(n).reduce(:+) end But it doesn't work (well, it does, indeed. It just doesn't stop working). I got frustrated. How about it? Don't you feel it nifty? Of course I can wait for the release next to 2.0.0. =end -- http://bugs.ruby-lang.org/