There's something I don't understand about them:

type Foo
 val
 double
 function call(::Type{Foo}, val)
   new(val, 2*val)
 end
end


I understand here that the programmer explicitly provides a way to call
Foo(3), but how does this prevent calls to Foo(3, 4) from being
automatically defined as usual?

Does the language detect, in some way, the explicit specialization and
stops doing it altogether?

Thanks.

-- 
ELS'16 registration open! http://www.european-lisp-symposium.org

Lisp, Jazz, Aïkido: http://www.didierverna.info

Reply via email to