A more elaborate example:

julia> y = [1,2]
2-element Array{Int64,1}:
 1
 2

julia> [(y = float64(y); y[i]) for i = 1:2]
2-element Array{Any,1}:
 1.0
 2.0

When your code is inside a function, julia will analyze it and determine that 
the type isn't changing.

--Tim

On Thursday, April 17, 2014 07:56:28 AM John Myles White wrote:
> y = [1]
> 
> y = [1.0]
> 
> [y[1] for i = 1]
> 
> On Apr 17, 2014, at 7:44 AM, Paweł Biernat <[email protected]> wrote:
> > Can you elaborate on that?  How can you change the type of y in my
> > example?
> > 
> > W dniu czwartek, 17 kwietnia 2014 16:38:48 UTC+2 użytkownik John Myles
> > White napisał: Because list comprehensions in the global scope can't be
> > sure that you aren't changing the type of y along the way.> 
> >  -- John
> > 
> > On Apr 17, 2014, at 7:37 AM, Paweł Biernat <[email protected]> wrote:
> >> Could someone please explain to me the difference between the two cases?
> >> 
> >> julia> y=[1]
> >> 
> >> 1-element Array{Int64,1}:
> >>  1
> >> 
> >> julia> [y[1] for i=1]
> >> 
> >> 1-element Array{Any,1}:
> >>  1
> >> 
> >> julia> [y[1]]
> >> 
> >> 1-element Array{Int64,1}:
> >>  1
> >> 
> >> In particular, why is in the first case the element type is Any, but in
> >> the second case it is Int64?

Reply via email to