> I do find this unsatisfying, because by the same logic I would expect > `[i=>i for i in 1:2]` to create an array of pairs in the future. But > the syntax currently creates a dictionary and does not seem to be > deprecated. In fact, there seems to be no dict comprehension syntax > consistent with the new dict construction syntax (i.e. that uses > `Dict`), as far as I can tell.
It looks like the idea is to deprecate that too in the next release cycle: https://github.com/JuliaLang/julia/pull/8521#discussion_r18476175 and go with Dict( i => f(x) for i = 1:10 ) > On 03/15/2015 11:55 PM, Tamas Papp wrote: >> I think that in 0.4, => is not merely syntax, but a constructor for a >> Pair. So you can do >> >> julia> [Pair(i,2*i) for i = 1:3] >> 3-element Array{Pair{Int64,Int64},1}: >> 1=>2 >> 2=>4 >> 3=>6 >> >> and using the => is just syntactic sugar. >> >> My understanding that [1=>2, 3=>4] is deprecated because it will >> eventually construct [Pair(1,2), Pair(3,4)] to be consistent. >> >> (type1=>type2)[...] comprehensions are syntactic sugar for creating >> Dicts. >> >> HTH, >> >> Tamas >> >> On Mon, Mar 16 2015, Jim Garrison wrote: >> >>> Bumping this since I am still curious and have been unable to figure out >>> the answer. >>> >>> Is intentional that dict comprehensions (and typed dict comprehensions) >>> still use the old syntax for dictionaries? >>> >>> julia> (Int=>Int)[i=>i for i in 1:2] == Dict{Int,Int}(1=>1, 2=>2) >>> true >>> >>> On Thursday, March 12, 2015 at 9:08:56 AM UTC-7, Jim Garrison wrote: >>>> >>>> It is well known that the dict syntax in 0.4 has changed >>>> >>>> julia> [1=>2,3=>4] >>>> WARNING: deprecated syntax "[a=>b, ...]". >>>> Use "Dict(a=>b, ...)" instead. >>>> >>>> However, I was surprised to notice that a similar syntax still works for >>>> dict comprehensions, without warning: >>>> >>>> julia> [i => 2i for i = 1:3] >>>> Dict{Int64,Int64} with 3 entries: >>>> 2 => 4 >>>> 3 => 6 >>>> 1 => 2 >>>> >>>> Is this intentional? >>>>
