Browse thread
[Caml-list] Reading a large text file
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2004-05-01 (19:51) |
From: | Alain.Frisch@e... |
Subject: | Re: [Caml-list] Reading a large text file |
On 2 May 2004, skaller wrote: > It can now do slightly better than that. It is possible to use > the new 'private' keyword to *guard* your mutable list. > > module MList = struct > type 'a mylist = private { head : 'a; mutable tail : 'a mylist option; } > .. > let splice a b = ...(* makes a new mylist of a @ b *) > end > Here, lists are immutable *publically*. Not quite. First, the "private" keyword should be used only in the signature, not the structure, otherwise the implementation of the module has no special right. Something like: module M : sig type t = private *** end = struct type t = *** end Second, the client cannot create values of the "private" type. This is not related at all with the mutability of the fields. It can only deconstruct values (with pattern matching). So you have to expose constructors explicitly (splice is one of them, but you probably want a simple Cons). -- Alain ------------------- 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