For debugging purposes, I’d like to be able to write something like:
d = @makedict( a, b, c )
which would expand to
d = Dict( :a=>a, :b=>b, :c=>c )
I just can’t seem to work out how to do this…
For debugging purposes, I’d like to be able to write something like:
d = @makedict( a, b, c )
which would expand to
d = Dict( :a=>a, :b=>b, :c=>c )
I just can’t seem to work out how to do this…
See @pack
in Parameters.jl
d = Dict{Symbol,Any}(:a=>5.0,:b=>2,:c=>"Hi!")
@unpack a, c = d
a == 5.0 #true
c == "Hi!" #true
d = Dict{Symbol,Any}()
@pack d = a, c
d # Dict{Symbol,Any}(:a=>5.0,:c=>"Hi!")
julia> a = 1; b = 2; c = 3;
julia> macro makedict(vars...)
expr = Expr(:call, :Dict)
for i in 1:length(vars)
push!(expr.args, :($(QuoteNode(vars[i])) => $(esc(vars[i]))))
end
return expr
end
@makedict (macro with 1 method)
julia> d = @makedict(a, b, c)
Dict{Symbol,Int64} with 3 entries:
:a => 1
:b => 2
:c => 3
esc
QuoteNode(vars[i])
Merci!