Fair enough.

On Wed, Apr 30, 2014 at 3:53 PM, John Myles White
<[email protected]>wrote:

> I think mod1 is a lot easier to understand than %%.
>
>  — John
>
> On Apr 30, 2014, at 1:45 AM, Tomas Lycken <[email protected]> wrote:
>
> Maybe... I really don't like the %% syntax, though - it's so cluttered. I
> agree it makes sense, and maybe one can get used to it, but it does use a
> lot of "ink". But I have no better suggestions :)
>
> // T
>
> On Monday, April 28, 2014 5:58:47 PM UTC+2, Stefan Karpinski wrote:
>>
>> I wonder if this is important enough to warrant an operator. Something
>> like v[i%%n]?
>>
>>
>> On Mon, Apr 28, 2014 at 6:53 AM, Tim Holy <[email protected]> wrote:
>>
>>> There's mod1, if that helps.
>>>
>>> --Tim
>>>
>>> On Monday, April 28, 2014 02:57:09 AM Tomas Lycken wrote:
>>> > In languages with zero-indexed vectors, I can easily let my indices
>>> "wrap"
>>> > by taking a modulus:
>>> >
>>> > N = length(v)
>>> > for i = 0:N-1
>>> >     v[i+1 % N] = ...
>>> > end
>>> >
>>> > will loop from the second element to the last, and then take the first,
>>> > since N % N == 0. However, with Julia's 1-indexed arrays, it's not that
>>> > easy - at some point, I'll end up at index 0:
>>> >
>>> > N = length(v)
>>> > for i = 1:N
>>> >     v[i + 1 % N] = ... # breaks at i = N-1, since index then becomes 0
>>> > end
>>> >
>>> > I could first offset my entire loop index by one, take the modulus, and
>>> > then add one again:
>>> >
>>> > N = length(v)
>>> > for i = 0:N-1
>>> >     v[(i+1 % N) + 1] = ...
>>> > end
>>> >
>>> > but this seems clunky to me, and is difficult to understand at first
>>> glance
>>> > (maybe not to current me, but to me-in-a-month trying to figure out
>>> what
>>> > this code does...). Is there a more idiomatic way to do the same thing
>>> in
>>> > Julia?
>>> >
>>> > My actual problem is having a (sorted) list of vertices in a polygon,
>>> and
>>> > wanting to loop over the edges (i.e. adjacent pairs in the list), so in
>>> > each step I want to access something like v[i+1]-v[i] and have the
>>> > end-points close the loop.
>>> >
>>> > Thanks in advance,
>>> >
>>> > // T
>>>
>>
>>
>

Reply via email to