I see that you change the type of y, but you do that before using the list comprehension. I still don't get why [y[1] for i = 1] should give a different result than [y[1]] when used in the same conditions.
W dniu czwartek, 17 kwietnia 2014 16:56:28 UTC+2 użytkownik John Myles White napisał: > > y = [1] > > y = [1.0] > > [y[1] for i = 1] > > On Apr 17, 2014, at 7:44 AM, Paweł Biernat <[email protected]<javascript:>> > 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? >> >> >> >
