From: merch-redmine@... Date: 2019-08-08T20:45:16+00:00 Subject: [ruby-dev:50829] [Ruby master Bug#7877] E::Lazy#with_index should be lazy Issue #7877 has been updated by jeremyevans0 (Jeremy Evans). File lazy-with-index-block-7877.patch added This bug is still present in the master branch. I've updated nobu's patch to apply to the master branch, which required a significant rewrite. The updated patch is attached. ---------------------------------------- Bug #7877: E::Lazy#with_index should be lazy https://bugs.ruby-lang.org/issues/7877#change-80500 * Author: shyouhei (Shyouhei Urabe) * Status: Assigned * Priority: Normal * Assignee: nobu (Nobuyoshi Nakada) * Target version: * 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 ---Files-------------------------------- 0001-enumerator.c-Enumerator-Lazy-with_index.patch (3.33 KB) lazy-with-index-block-7877.patch (4.08 KB) -- https://bugs.ruby-lang.org/