[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: [NoW] About numeric for-loop
- From: Albert Chan <albertmcchan@...>
- Date: Thu, 17 Jan 2019 08:39:31 -0500
> On Jan 17, 2019, at 12:44 AM, Dirk Laurie <dirk.laurie@gmail.com> wrote:
>
> Put all the clever tricks in a function 'loop' and use the generic for:
>
> for v in loop(e1,e2,e3) do
Like this ?
> function loop(e1,e2,e3)
>> local i, n = -1, math.floor((e2-e1)/e3)
>> if e1 + n * e3 == e2 then n = n+1 end
>> return function()
>> i = i + 1
>> if i < n then return e1 + i*e3 end
>> end
>> end
>
> for k in loop(1,2,1/6) do print(k) end
1.0
1.1666666666667
1.3333333333333
1.5
1.6666666666667
1.8333333333333
2.0
Avoiding accumulated steps rounding error also work:
> for k = 6,12 do print(k/6) end
1.0
1.1666666666667
1.3333333333333
1.5
1.6666666666667
1.8333333333333
2.0
>