The arguments given in the thread that Dict 'isn't special' should also 
also apply to Vector and Array, I presume nobody wants to do away with 
literal syntax for them as well? 

There are many times when having a simple terse native (code editor aware) 
literal syntax for structured data is very useful (in the same way that it 
is useful for vectors and arrays) and I second what David is saying, it 
feel like I'm back writing C++/C#/Java et al. 

Using macros works, but everybody is going to have their own so there will 
be no consistency across the code base. Dict(...) works without the types 
so I guess that is the best of a bad bunch. 

On Wednesday, September 2, 2015 at 1:07:59 PM UTC-4, Isaiah wrote:
>
> This issue was raised here:
> https://github.com/JuliaLang/julia/issues/6739#issuecomment-120149597
>
> I believe the consensus was that nice JSON input syntax could be handled 
> with a macro.
>
> Also, once the "[ a=>b, ...]" syntax deprecation goes away, I believe this:
>
>     [ :col => "l1", :col => "l2", ... ]
>
> will simply give you an array of Pair objects, which could be translated 
> to unitary Dicts by JSON.
>
> (FWIW, it is not necessary to specify the argument types to Dict)
>
> On Wed, Sep 2, 2015 at 12:45 PM, Michael Francis <[email protected] 
> <javascript:>> wrote:
>
>> With the change to 0.4 happening soon I'm finding the the new Dict syntax 
>> in 0.4 (removal of {}, []) is extremely verbose.
>>
>> I find myself interfacing with JSON APIs frequently, for example a 
>> configuration dictionary :
>>
>> data = {
>>         :displayrows => 20,
>>         :cols => [
>>                     { :col => "l1" },
>>                     { :col => "l2" },
>>                     { :col => "l3" },
>>                     { :col => "num", :display => true },
>>                     { :col => "sum", :display => true, :conf => { :style 
>> => 1, :func => { :method => "sum", :col => "num"  } } }
>>                 ]  
>>        ... # Lots more   
>>     }
>>
>> becomes -
>>
>> data = Dict{Symbol,Any}(
>>         :displayrows => 20,
>>         :cols => [
>>                     Dict{Symbol,Any}( :col => "l1" ),
>>                     Dict{Symbol,Any}( :col => "l2" ),
>>                     Dict{Symbol,Any}( :col => "l3"   ),
>>                     Dict{Symbol,Any}( :col => "num", :display => true ),
>>                     Dict{Symbol,Any}( :col => "sum", :display => true, :conf 
>> => Dict{Symbol,Any}( :style => 1, 
>>                                                                     :func 
>> => Dict{Symbol,Any}( :method => "sum", :col => "num" ) ) )
>>                 ]  
>>        ... # Lots more
>>     )
>>
>> This feels like asking a person using arrays to write the following
>>
>> Array{Int64,2}( Vector{Int64}( 1,2,3), Vector{Int64}( 4,5,6) )
>>
>> vs
>>
>> [ [ 1, 2, 3] [ 4,5,6 ] ]
>>
>> Can we please reconsider ?
>>
>>
>

Reply via email to