You also might check out DefaultDict in the DataStructures.jl package.

Cheers,  Kevin

On Sunday, April 6, 2014 7:46:33 AM UTC-7, Stefan Karpinski wrote:
>
> It's just a function so it must evaluate all its arguments. With the 
> exception of a few built-in special forms like ccall, if something looks 
> like a function call in Julia, it is a function call. In particular, macro 
> invocations, which can introduce radically different semantics, do not look 
> the same. There is higher-order method of get that takes a zero-argument 
> function and does what you want:
>
> get(dict1,1) do
>   get!(dict2,1,2)
> end
>
>
> There's been discussion about adding syntax for dictionaries in the past, 
> but we never settled on anything.
>
>
> On Sun, Apr 6, 2014 at 9:57 AM, Adam Kapor <[email protected]<javascript:>
> > wrote:
>
>> Is get supposed to evaluate the fallback argument?  I was surprised by 
>> this:
>>
>> julia> dict1 = {1=>1} 
>> {1=>1} 
>> julia> dict2 = Dict() 
>> Dict{Any,Any}() 
>> julia> get(dict1,1,get!(dict2,1,2)) 
>> 1 
>> julia> dict2 
>> {1=>2}
>>
>> The other method is more what I'd have expected
>> julia> get(dict1,1) do
>>        ()->get!(dict2,1,2) 
>>        end 
>> 1 
>> julia> dict2 
>> Dict{Any,Any}()
>>
>>
>>
>

Reply via email to