Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] record declaration, SML
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Alessandro Baretta <alex@b...>
Subject: Re: [Caml-list] record declaration, SML


Daniel de Rauglaudre wrote:
> Hi,
> 
> 
>>What's best translation of the following SML type?
>>datatype t = C of { f : int }
> 
> 
> A solution is:
>   type t = C of < f : int >

Interesting solution. However, Ocaml does not support 
defining objects on the fly. The following
 > let c = new object method f = 1 end in C c
is not valid Ocaml.

So, in order to define just one value one needs to define an 
entire class as in the following example.

class f_one = object method f = 1 end
let res = C (new f_one)

BTW, why is something like the above not in the language? It 
seems only natural to have such a feature since an analogous 
construct exists for structs.

let module C = struct let f = 1 end in C.f

Alex



-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners