Just as a side note (I entirely agree with Stefan), Matlab behaves the same as Julia:
>> 3:1 ans = Empty matrix: 1-by-0 Am Donnerstag, 3. Juli 2014 03:38:32 UTC+2 schrieb Stefan Karpinski: > > It changes the meaning of a:b in a capricious way based on their values, > which, while often appealing for the immediate situation – and thus rampant > in dynamic languages – is almost always terrible for writing predictable, > reliable code. > > > On Wed, Jul 2, 2014 at 1:07 PM, Jay Kickliter <[email protected] > <javascript:>> wrote: > >> I assume that when I wake up at 5 AM to finish some DSP code. Really, it >> was just a stupid mistake. From a non-programmer's perspective (me), it >> seemed like it should have work. If you think that would be dangerous, I'll >> take your word for it. >> >> >> On Wednesday, July 2, 2014 8:26:10 AM UTC-6, Stefan Karpinski wrote: >> >>> Why would one assume that the default step size is -1 when the start is >>> bigger than the stop? The documentation for ranges clearly says that the >>> default step size is 1 unconditionally, not that it is sign(stop-start). >>> That would, by the way, be a very dangerous behavior. Perhaps a sidebar on >>> the colon syntax is warranted in the manual control flow section on for >>> loops, including examples of empty ranges and ranges that count downwards. >>> >>> >>> On Wed, Jul 2, 2014 at 9:53 AM, Jay Kickliter <[email protected]> >>> wrote: >>> >>>> I just realized that it works if I rewrite the range as 10:-1:1. It >>>> seems to me that either big:small should work with a default step size of >>>> -1, or the documentation needs a note. >>>> >>>> >>>> On Wednesday, July 2, 2014 7:32:10 AM UTC-6, Jay Kickliter wrote: >>>>> >>>>> Are they meant to work? I could only find one meaning of them not >>>>> working (issue 5778 <https://github.com/JuliaLang/julia/issues/5778>). >>>>> >>>>> Here's an example: >>>>> >>>>> julia> for i = 1:10 >>>>> >>>>> println(i) >>>>> >>>>> end >>>>> >>>>> 1 >>>>> >>>>> 2 >>>>> >>>>> 3 >>>>> >>>>> 4 >>>>> >>>>> 5 >>>>> >>>>> 6 >>>>> >>>>> 7 >>>>> >>>>> 8 >>>>> >>>>> 9 >>>>> >>>>> 10 >>>>> >>>>> >>>>> julia> for i = 10:1 >>>>> >>>>> println(i) >>>>> >>>>> end >>>>> >>>>> >>>>> julia> >>>>> >>>> >>> >
