Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Constructors are not functions
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2009-10-06 (13:15)
From: Jon Harrop <jon@f...>
Subject: Re: [Caml-list] Constructors are not functions
On Tuesday 06 October 2009 13:45:04 David Allsopp wrote:
> >   Is there a reason for constructors not to behave like functions? For
> > instance, one cannot make a partial application from a constructor:
> This is how SML handles constructors, Xavier explained the reasons he chose
> to depart from this in:
> I think it would be possible to simulate the SML behaviour in OCaml using
> camlp4 (if you assume that for [type foo = Bar of int] that future unbound
> references to [bar] are interpreted as [fun x -> bar x] instead of an
> error)

Only if you turned multi-argument type constructors into single-argument ones 
taking a tuple, i.e. type definitions like:

  type t = Bar of int * int

must become:

  type t = Bar of (int * int)

Dr Jon Harrop, Flying Frog Consultancy Ltd.