0.5 should have generators, so I assume that it will be the preferred way 
to write a dict comprehension

https://github.com/JuliaLang/julia/pull/14782

On Saturday, April 2, 2016 at 8:59:01 AM UTC-4, Tamas Papp wrote:
>
> On Sat, Apr 02 2016, Yichao Yu wrote: 
>
> > On Sat, Apr 2, 2016 at 8:35 AM, Tamas Papp <[email protected] 
> <javascript:>> wrote: 
> >> On Sat, Apr 02 2016, Yichao Yu wrote: 
> >> 
> >>> On Sat, Apr 2, 2016 at 2:28 AM, Tamas Papp <[email protected] 
> <javascript:>> wrote: 
> >>>> On Fri, Apr 01 2016, Yichao Yu wrote: 
> >>>> 
> >>>>> On Fri, Apr 1, 2016 at 5:33 AM, Tamas Papp <[email protected] 
> <javascript:>> wrote: 
> >>>>>> Hi, 
> >>>>>> 
> >>>>>> I ran into a problem with the result type of Dict comprehensions. 
> If I 
> >>>>>> wrap the comprehension in a function, it produces the narrowest 
> type, 
> >>>>>> otherwise the type of value is Any. Code looks like this: 
> >>>>> 
> >>>>> https://github.com/JuliaLang/julia/issues/7258 
> >>>> 
> >>>> Sorry, I don't understand why it is the same issue. The type of 
> >>>> arguments in the comprehension is always the same, just that one 
> version 
> >>>> is wrapped in a function inside a function, and the other one isn't. 
> >>> 
> >>> And that's exactly where type inference sensitivity comes in. One of 
> >>> them is inferable and the other not. 
> >> 
> >> Thanks, now I think I get it. So for the time being, is wrapping 
> >> something in a function to make it inferable a reasonable general 
> >> workaround? 
> >> 
> > 
> > Depend on what you need. If it works than sure. 
> > Supplying the type manually also works, if you can easily determine it 
> > of course. 
>
> Rereading #7258 I convinced myself that I should supply the type 
> manually. Two questions: 
>
> 1. Is Dict{keytype,valuetype}([...my comprehension...]) the preferred 
> syntax, that will survive to 0.5? 
>
> 2. If I am computing the type of A/B and I know that their types are 
> TypeA and TypeB, what's the preferred way of computing the result type? 
> I came up with 
>
> typeof(one(TypeA)/one(TypeB)) 
>
> but maybe there is something more elegant. 
>
> Best, 
>
> Tamas 
>

Reply via email to