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.
> 
> 

Reply via email to