That's not a good idea – or at least it's bound to cause you some nasty 
problems. There is a lot of indexing code in Base (and probably elsewhere too) 
that depends in individual Ints being iterable like this. I'm not a huge fan of 
it personally, but it seems be pretty handy when trying to write generic 
multidimensional array code – the idea being that a scalar behaves like a 
zero-dimensional tensor. In any case, it's not a thing that can be changed by 
itself without also changing a lot of other code that relies on the current 
behavior.

> On Mar 29, 2014, at 10:25 AM, Tom Lee <m...@tomlee.id.au> wrote:
> 
> I've only been using Julia a few weeks and typos of this sort must have cost 
> me several hours of debugging in total. You have given me an idea though, I 
> think I try to find the method in Base for iteration over an integer and edit 
> it myself to make it raise an error.
> 
> Cheers,
> Tom
> 
>> On Saturday, 29 March 2014 08:29:22 UTC-4, andrew cooke wrote:
>> 
>> sorry, i wasn't clear.
>> 
>> Base defines the methods necessary for it for iteration "over" an integer.
>> 
>> julia> for i in 8
>>        print(i)
>>        end
>> 8
>> 
>> i am suggesting this is not a good idea.
>> 
>> andrew
>> 
>> 
>> 
>>> On Saturday, 29 March 2014 00:42:35 UTC-3, Leah Hanson wrote:
>>> You can make any type iterable (by defining start, next, and done); you 
>>> could, if you wanted, make Int/Integer/whatever iterable. Making an Int 
>>> literal a syntax error here would create inconsistent behavior when someone 
>>> (inevitably) decides to iterate over Ints for some reason.
>>> 
>>> I assume you got a NoMethod error about start?
>>> 
>>> -- Leah
>>> 
>>> 
>>>> On Fri, Mar 28, 2014 at 8:19 PM, andrew cooke <and...@acooke.org> wrote:
>>>> 
>>>> maybe there's a good reason for this (i suspect there is, but i'm not 
>>>> seeing it right now).  but if there isn't, removing it might save some 
>>>> poor typist or confused newbie from a frustrated debugging session.
>>>> 
>>>> the problem is that
>>>> 
>>>> for i in 8
>>>>     ...
>>>> end
>>>> 
>>>> isn't a syntax error (when what was meant was the range 1:8)
>>>> 
>>>> cheers,
>>>> andrew
>>> 

Reply via email to