[Issue 8155] Deprecate std.range.lockstep
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Jun 5 13:43:11 PDT 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8155
--- Comment #2 from bearophile_hugs at eml.cc 2012-06-05 13:45:11 PDT ---
(In reply to comment #1)
> Sorry, but I *do* use the index variable:
I didn't said that index variable is never useful and never used. I have said
its need is rare, in my experience of using Python and in my experience of
looking at Haskell code.
On the other hand I have shown and offered 3 different ways to solve the
problem without lockstep. lockstep is redundant, and its usage doesn't shorten
a significant amount of code: there are redundant operations that are way more
commonly useful than lockstep, like amap/afilter.
> https://github.com/AndrejMitrovic/DWinProgramming/blob/master/Samples/Chap06/KeyView1/KeyView1.d#L198
> https://github.com/AndrejMitrovic/DWinProgramming/blob/master/Samples/Chap09/BtnLook/BtnLook.d#L144
Of the 3 alternative solution, using enumerate, those:
foreach (index, button, ref hwndButton; lockstep(buttons, hwndButtons))
foreach (index, myMsg; lockstep(iota(0, min(cLines, cyClient / cyChar - 1)),
retro(msgArr)))
Become:
foreach (index, button, ref hwndButton; enumerate(zip(buttons, hwndButtons)))
foreach (index, myMsg; enumerate(zip(iota(min(cLines, cyClient / cyChar - 1)),
retro(msgArr))))
Or maybe:
foreach (index, button, ref hwndButton; buttons.zip(hwndButtons).enumerate())
foreach (index, myMsg; min(cLines, cyClient / cyChar -
1).iota().zip(msgArr.retro()).enumerate())
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list