caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Ocaml secrets
@ 2000-01-12 15:31 Norman Ramsey
  2000-01-12 17:56 ` David Brown
  2000-01-12 22:35 ` Francois Rouaix
  0 siblings, 2 replies; 3+ messages in thread
From: Norman Ramsey @ 2000-01-12 15:31 UTC (permalink / raw)
  To: caml-list

I've been going nuts copying record-type definitions, and then Benjamin Pierce
showed me a trick.

Please tell me where in the OCaml manual I could have discovered
the ability to write

  tm.Unix.tm_hour

as in

        let tm = Unix.localtime (Unix.time()) in
        sprintf "%02d:%02d:%02d " tm.Unix.tm_hour tm.Unix.tm_min tm.Unix.tm_sec


Norman

P.S.  just writing let tm = ... in ... tm.tm_hour ... etc causes ocamlc to barf.




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Ocaml secrets
  2000-01-12 15:31 Ocaml secrets Norman Ramsey
@ 2000-01-12 17:56 ` David Brown
  2000-01-12 22:35 ` Francois Rouaix
  1 sibling, 0 replies; 3+ messages in thread
From: David Brown @ 2000-01-12 17:56 UTC (permalink / raw)
  To: Norman Ramsey; +Cc: caml-list

On Wed, Jan 12, 2000 at 10:31:22AM -0500, Norman Ramsey wrote:

> Please tell me where in the OCaml manual I could have discovered
> the ability to write
> 
>   tm.Unix.tm_hour
> 
> as in

I didn't find it.  I tried it on a whim and was very glad that it
worked.

If you wander through the BNF grammar in the reference section, it
does show it as being possible.  A label can either be a label-name,
or a  (module-path '.' label-name).  It might be helpful to mention
this somewhere in the tutorial, or in some kind of FAQ, since it is
very handy.

Dave Brown




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Ocaml secrets
  2000-01-12 15:31 Ocaml secrets Norman Ramsey
  2000-01-12 17:56 ` David Brown
@ 2000-01-12 22:35 ` Francois Rouaix
  1 sibling, 0 replies; 3+ messages in thread
From: Francois Rouaix @ 2000-01-12 22:35 UTC (permalink / raw)
  To: Norman Ramsey; +Cc: caml-list

> Please tell me where in the OCaml manual I could have discovered
> the ability to write
> 
>   tm.Unix.tm_hour

Well, the online manual says

    label ::= label-name
           |  module-path .  lowercase-ident

at http://pauillac.inria.fr/ocaml/htmlman/manual009.html

and expr ::= ... | expr.label
at http://pauillac.inria.fr/ocaml/htmlman/manual013.html

I'd say it's a matter of faith in the regularity of the compiler (or 
its authors, hi guys, how are you) ;-)
Since we know that a language object (except modules and weird things like
method names) always lives in some module, and since we know that we can use 
M.x to access value x in module M, we should expect M.l to be valid to refer
to label l in module M.


--f





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2000-01-13 16:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-01-12 15:31 Ocaml secrets Norman Ramsey
2000-01-12 17:56 ` David Brown
2000-01-12 22:35 ` Francois Rouaix

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).