All I mean is that if you write functions that call `firstparam` or
`secondparam`, julia will be able to infer the return type. That means that in
function foo(mt::MyType)
T = firstparam(typeof(mt))
a = Array(T,20)
# now do something with a
end
julia will generate efficient code in manipulating a. With the version that
uses
the parameters field directly, it won't.
In addition to the two methods I showed in the last email, you should also
define
firstparam(mt::MyType) = firstparam(typeof(mt))
secondparam(mt::MyType) = secondparam(typeof(mt))
and that will make the code above a little nicer.
Best,
--Tim
On Saturday, September 12, 2015 03:27:20 AM Jeffrey Sarnoff wrote:
> pls show me a quick example of using that inferrably
>
> On Saturday, September 12, 2015 at 6:12:21 AM UTC-4, Tim Holy wrote:
> > A much better way (because it's inferrable):
> >
> > firstparam{A,B}(::Type{MyType{A,B}}) = A
> > secondparam{A,B}(::Type{MyType{A,B}}) = B
> >
> > --Tim
> >
> > On Friday, September 11, 2015 06:40:59 PM Jeffrey Sarnoff wrote:
> > > julia> type MyType{A,B} end
> > >
> > > julia> ((MyType.parameters)...)
> > > (A,B)
> > >
> > > On Friday, September 11, 2015 at 3:20:17 PM UTC-4, Erik Schnetter wrote:
> > > > Is there a function in Julia that allows accessing the parameters of a
> > > > type?
> > > >
> > > > For example, if I have
> > > >
> > > > type T{A,B} end
> > > >
> > > > then I'd like a way to convert `T{Int, Char}` to `(Int, Char)`.
> > > >
> > > > In other words, is there a way to get at the contents of `DataType`
> > > > objects?
> > > >
> > > > Thanks,
> > > > -erik