Even more confusing, you can define a parametric inner constructor:
Point{S}(x::S, y::S) = ..., which defines methods for Point{T}On Tue, Apr 22, 2014 at 10:31 AM, Matt Bauman <[email protected]> wrote: > On Tuesday, April 22, 2014 12:08:01 AM UTC-4, Kevin Squire wrote: >> >> … until I realized that T in the first set of braces is a function type >> parameter (i.e., specializing the function), and the second is a >> specialization of the constructed type. > > > Yes, exactly. I think it's that the notation seemed backwards to me. For > the inner constructor you write Point(x::T, y::T) = ..., but it defines > methods for Point{T}. And for parametric functions, you write > Point{T<:Real}(x::T, y::T) = ..., and it defines methods for Point!
