Maybe;

type MyType end

function f(t::DataType)
I = ()
for t in t.types
if isa(t, TypeVar)
I = (I..., Any)
else
I = (I..., t)
end
end
return I
end

 julia> f(Tuple{Int64, Float64})
(Int64,Float64)

julia> f(Tuple{Int64, MyType, Float32})
(Int64,MyType,Float32)

julia> f(NTuple{3})
(Any,Any,Any)

julia> f(Tuple) 
(Vararg{Any,N},julia> f(Tuple{Int64, Float64})
(Int64,Float64)

Probably has crappy performance though.

On Sunday, July 24, 2016 at 1:52:47 PM UTC+2, jw3126 wrote:
>
> I need a function, which accepts an arbitrary tuple type and returns the 
> types of the components of the tuple. For example
> ```
> f(Tuple{Int64, Float64})                --> (Int64, Float64)
> f(Tuple{Int64, MyType, Float32}) --> (Int64, MyType, Float32)
> f(NTuple{3})                                  --> (Any, Any, Any)
> f(Tuple)                                         --> Some error since 
> length is unknown
> ```
>
> How to accomplish this?
>

Reply via email to