That's the plan: https://github.com/JuliaLang/julia/issues/7258.
On Wed, Nov 5, 2014 at 2:54 PM, Dahua Lin <[email protected]> wrote: > The output type of list comprehension is often difficult to infer (by > human), as it depends on a complex compile-time type inference mechanism. > This, combined with the fact that its behavior is inconsistent with that of > the function map, is a recipe for confusion. > > We should try to make things more consistent. > > - Dahua > > > On Wednesday, November 5, 2014 8:30:58 AM UTC+8, [email protected] wrote: >> >> >> >> On Wednesday, November 5, 2014 10:01:10 AM UTC+11, [email protected] >> wrote: >>> >>> Bug map works fine... >>> >>> julia> g(x) = 1 / (1 + x) >>> g (generic function with 1 method) >>> >>> julia> xs = [1.0, 2.0, 3.0, 4.0] >>> 4-element Array{Float64,1}: >>> 1.0 >>> 2.0 >>> 3.0 >>> 4.0 >>> >>> julia> gxs1 = map(g, xs) >>> 4-element Array{Float64,1}: >>> 0.5 >>> 0.333333 >>> 0.25 >>> 0.2 >>> >>> >> Map determines the type dynamically at runtime. Comprehensions infer the >> type at compile time, but the type of g(x) is dependent on the type of x, >> so its not known at compile time. >> >> If you define g(x) = (1/(1+x))::Float64 so the type of g(x) is known at >> compile time then you get: >> >> julia> gxs = [g(x) for x in xs] >> 4-element Array{Float64,1}: >> 0.5 >> 0.333333 >> 0.25 >> 0.2 >> >> [...] >> >>> >>>> >>>>
