I'm pretty sure this sort of thing always works since type declarations on
variables behave like convert calls:
julia> function foo()
a::Int64 = 0x01
return a
end
foo (generic function with 1 method)
julia> foo()
1
-- John
On Oct 29, 2014, at 10:50 AM, Zenna Tavares <[email protected]> wrote:
> Also, the following runs but still returns a Vector{Any}. How is this
> possible?
>
> function makestring(fun)
> A::Array{ASCIIString} = [fun(i) for i = 1:3]
> end
>
>
> On Wednesday, October 29, 2014 1:45:51 PM UTC-4, Zenna Tavares wrote:
> As shown in the following example, I am getting differently typed arrays
> depending on where I use the list comprehension.
>
> f(i) = "$i"
> A = [f(i) for i = 1:3]
> function makestring(fun)
> A = [fun(i) for i = 1:3]
> end
> B = makestring(f)
>
> In this example A has type Vector{ASCIIString} while B has type Vector{Any}.
> What gives? And is there a workaround such that we get a more specific type?
>
> I understand there are some open issues related to this, but I am not sure if
> this case comes under what's already been discussed.
>
>