caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* RE: ROverloading
@ 2000-12-18 15:27 Dave Berry
  2000-12-19  6:45 ` ROverloading John Max Skaller
  0 siblings, 1 reply; 3+ messages in thread
From: Dave Berry @ 2000-12-18 15:27 UTC (permalink / raw)
  To: John Max Skaller, Mattias Waldau; +Cc: caml-list

John Max Skaller wrote:

> 	Unfortunately, overloading isn't quite so simple when 
> you've also got type inference:

That depends on how general you try to be.  I'd be quite happy with a system
that allowed multiple definitions of a name, but forced applications to be
monomorphic.  In your example, the definition of f would require a
disambiguating type annotation (or assume a default):

>	let f a b = a + b in
>	let x = f 1.0 2.0 in
>	let y = f 1 2 in 

would become

	let f a b = a + b : int in ...

Theoretically inelegant, but pragmatically sufficient.  As indeed you seem
to be doing in Felix.

I'd use the module system to introduce and control overloading, rather than
trying to extend the core language.  It seems a simpler route.

Dave. 



^ permalink raw reply	[flat|nested] 3+ messages in thread
* RE: Functions must be explicitly typed, (was Same label in different types, how do people solve this?)
@ 2000-12-15 13:39 Mattias Waldau
  2000-12-16 14:10 ` ROverloading John Max Skaller
  0 siblings, 1 reply; 3+ messages in thread
From: Mattias Waldau @ 2000-12-15 13:39 UTC (permalink / raw)
  To: Pierre.Weis, Stefan Monnier; +Cc: caml-list

>>> >>>>> "Mattias" == Mattias Waldau <mattias.waldau@abc.se> writes:
>>> > I don't really see the use of infering types for functions. It works
for one

I was wrong! It is very nice to have type inference for local and anynomous
functions.

>>
>> I would like to note that type inference (i.e. code without
>> annotations) helps a lot when developing programs: the annotation free
>> code is not only easier to write but also easier to maintain since it
>> is kind of ``auto-adaptative'' and resistant to reorganisations and
>> names modifications.

If this were important, we shouldn't have different operators for * and *.
I had to change a program from integers to float recently, and it isn't fun
at all.

/mattias




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2000-12-19 16:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-12-18 15:27 ROverloading Dave Berry
2000-12-19  6:45 ` ROverloading John Max Skaller
  -- strict thread matches above, loose matches on Subject: below --
2000-12-15 13:39 Functions must be explicitly typed, (was Same label in different types, how do people solve this?) Mattias Waldau
2000-12-16 14:10 ` ROverloading John Max Skaller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).