RE: Undefined labels

From: Brian Rogoff (bpr@best.com)
Date: Tue Nov 16 1999 - 01:30:20 MET


Date: Mon, 15 Nov 1999 16:30:20 -0800 (PST)
From: Brian Rogoff <bpr@best.com>
To: caml-list@inria.fr
Subject: RE: Undefined labels
In-Reply-To: <783D93998201D311B0CF00805FEAA07B7E8FE5@RED-MSG-42>

On Fri, 12 Nov 1999, Manuel Fahndrich wrote:
>
> This is the standard example for why we need a local open in the language=
.
>
> -Manuel

Let me second that motion. Coming from Ada, I always wondered why OCaml
doesn't allow you to restrict the scope of open, instead of putting it
always at module level.

-- Brian

>
>
> -----Original Message-----
> From: Christian RINDERKNECHT [mailto:rinderkn@hugo.int-evry.fr]
> Sent: Friday, November 12, 1999 8:48 AM
> To: caml-redistribution@pauillac.inria.fr
> Cc: caml-list@inria.fr
> Subject: Re: Undefined labels
>
>
> Hello,
>
> > =09(Unix.fstat argument).st_kind
> >
> > Here, the function returns a structure, st_kind
> > is a label of that structure, but it is not known
> > in the calling module. Is there a syntax for this?
>
> Yes:
>
> (Unix.fstat argument).Unix.st_kind
> ^^^^
> because the compiler doesn't know in what module to look-up for label
> [st_kind].
>
>
> > Using 'open Unix' is unacceptable.
>
> I also never use the "open" feature, but the consequence is, when using
> nested records, I must qualify all the labels (as in your example),
> and the code becomes unreadable.
>
> I recently started using classes in order to avoid this practical
> problem, since methods are in the scope of their object, not of the
> module embedding their class.
>
> But this doesn't work if the library you are using is not
> object-oriented, of course:)
>
> Best regards,
>
> --
>
> Christian
>
> -----------------------------------------------------------------------
> Christian Rinderknecht Phone +33 (0)1 60 76 44 43
> Institut National des Télécommunications Fax +33 (0)1 60 76 47 11
> Département Logiciels Réseaux (LOR) WWW
> 9, Rue Charles Fourier, F-91011 =C9vry Cedex
>



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:28 MET