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> 
>>>>>
>>>>
>>>
>

Reply via email to