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