caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Andreas Rossberg <rossberg@ps.uni-sb.de>
To: caml-list@inria.fr
Cc: Sven <luther@dpt-info.u-strasbg.fr>
Subject: Re: [Caml-list] Style question
Date: Tue, 11 Sep 2001 14:08:32 +0200	[thread overview]
Message-ID: <3B9DFEC0.2D7BCAEA@ps.uni-sb.de> (raw)
In-Reply-To: <20010911125524.B29665@dpt-info.u-strasbg.fr>

Sven wrote:
> 
> >       local open M in
> >       ...
> >       end
> >
> > Of course, in OCaml this is solved by having open vs. include.
> 
> Also, would not :
> 
> let module = struct ... end in
> 
> be another solution for it, maybe in conjunction with the open syntax ?

Not sure, since I don't understand your code snippet, or how it is
related to local or open. Could you clarify a bit?

Anyway, there are of course several ways to rewrite SML's local. If it
involves only core declarations and the body consists of only one
function you might transform it into a let, although I think that is
usually not a good idea. On structure level the most faithful
translation to OCaml is:

module Local = struct (* Prefix *) module Body = struct (* Body *) end
end
include Local.Body

But this is quite unreadable and introduces the auxiliary module name
Local (which would not be necessary if OCaml supported let as module
expressions). In general relying on signature constraints is by far the
best solution and works for all sane uses of local.

	- Andreas

-- 
Andreas Rossberg, rossberg@ps.uni-sb.de

"Computer games don't affect kids; I mean if Pac Man affected us
 as kids, we would all be running around in darkened rooms, munching
 magic pills, and listening to repetitive electronic music."
 - Kristian Wilson, Nintendo Inc.
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


  reply	other threads:[~2001-09-11 12:08 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-09-09 21:00 Brian Rogoff
2001-09-11  9:59 ` Andreas Rossberg
2001-09-11 10:55   ` Sven
2001-09-11 12:08     ` Andreas Rossberg [this message]
2001-09-11 12:16       ` Sven
2001-09-11 14:28         ` Brian Rogoff
2001-09-11 14:29         ` Andreas Rossberg
2001-09-11 18:11   ` Brian Rogoff
2001-09-12  9:03     ` Andreas Rossberg
2001-09-11 18:58 Krishnaswami, Neel
2001-09-12  9:14 ` Andreas Rossberg
2001-09-12 10:24 Dave Berry

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3B9DFEC0.2D7BCAEA@ps.uni-sb.de \
    --to=rossberg@ps.uni-sb.de \
    --cc=caml-list@inria.fr \
    --cc=luther@dpt-info.u-strasbg.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).