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

Reply via email to