Thank you

On 5 April 2016 at 15:47, Josh Langsfeld <jdla...@gmail.com> wrote:

> This is noted in the docs. See a few paragraphs down, "When a type is
> applied like a function..."
>
> http://docs.julialang.org/en/release-0.4/manual/types/#composite-types
>
> On Tuesday, April 5, 2016 at 10:19:05 AM UTC-4, FANG Colin wrote:
>>
>> methods(TT)
>>
>>  call(::Type{TT}, x::Float64, y::Float64) at In[22]:2
>>  call(::Type{TT}, x, y) at In[22]:2
>>  call{T}(::Type{T}, arg) at essentials.jl:56
>>  call{T}(::Type{T}, args...) at essentials.jl:57
>>
>>
>> So I guess the rule is applied in  call(::Type{TT}, x, y)
>>
>> What does it do? Does it try to convert(Float64, x) & convert(Float64,
>> y)? I.e does it always try to convert each argument to the type of the
>> field defined in the type?
>>
>> On 5 April 2016 at 15:11, Yichao Yu <yyc...@gmail.com> wrote:
>>
>>> On Tue, Apr 5, 2016 at 10:09 AM, FANG Colin <coli...@gmail.com> wrote:
>>> > Sorry if this has been discussed somewhere as I am unable to find the
>>> > relative post.
>>> >
>>> > immutable TT
>>> >     x::Float64
>>> >     y::Float64
>>> > end
>>> >
>>> > function tt(x::Float64, y::Float64)
>>> >     x + y
>>> >
>>> > end
>>> > tt(1,2) # doesn't work
>>> > TT(1,2) # works
>>>
>>> There are automatic constructors defined with conversion not promotion.
>>> See `methods(TT)`
>>>
>>> >
>>> > What rule applies here for TT(1,2)?
>>>
>>
>>

Reply via email to