From: "Nicolas Cannasse" <warplayer@free.fr>
To: <brogoff@speakeasy.net>, "Richard Jones" <rich@annexia.org>
Cc: "David Brown" <caml-list@davidb.org>, "Vovka" <jove@newmail.ru>,
<caml-list@inria.fr>
Subject: Re: [Caml-list] static class member....
Date: Wed, 6 Aug 2003 20:14:47 +0200 [thread overview]
Message-ID: <005b01c35c46$a466ea20$2b00a8c0@warp> (raw)
In-Reply-To: <20030806174330.GA30804@redhat.com>
> > Yes, it says in the language introduction (the part on objects)
> >
> > Let-bindings within class definitions are evaluated before the object
> > is constructed
>
> Well I take it back. And I must admit that I always have used
> let-bindings as if they are local to the instance.
>
> The question though is why does my example work? Is this a bug
> in the compiler?
It's not a bug.
You can see your class as function to get a better idea of what's happenning
:
let foo =
let x = ref 0 in
(fun () -> !x)
against :
let foo () =
let x = ref 0 in
!x
To answer to the original post about class static, there is no concept of
static class variables in Ocaml , but you can still write accessors to a
variable declared outside the class scope :
let counter = ref 0
class foo =
object
method incr = incr counter
method print = Printf.printf "counter = %d\n" !counter
end
Nicolas Cannasse
-------------------
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
next prev parent reply other threads:[~2003-08-06 18:14 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-08-06 12:35 [Caml-list] Unix.kill on Win32 James Scott
2003-08-06 12:57 ` [Caml-list] static class member Vovka
2003-08-06 14:45 ` Richard Jones
2003-08-06 14:51 ` David Brown
2003-08-06 15:10 ` Richard Jones
2003-08-06 16:12 ` brogoff
2003-08-06 17:43 ` Richard Jones
2003-08-06 18:11 ` David Brown
2003-08-06 18:30 ` William Lovas
2003-08-06 18:14 ` Nicolas Cannasse [this message]
2003-08-07 0:12 ` Jacques Garrigue
2003-08-07 5:20 ` james woodyatt
2003-08-07 17:02 ` brogoff
2003-08-07 21:53 ` John Max Skaller
2003-08-06 16:24 ` David Brown
2003-08-07 0:21 ` [Caml-list] Unix.kill on Win32 Jacques Garrigue
2003-08-07 0:41 ` Jacques Garrigue
2003-08-08 14:38 [Caml-list] static class member Arturo Borquez
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='005b01c35c46$a466ea20$2b00a8c0@warp' \
--to=warplayer@free.fr \
--cc=brogoff@speakeasy.net \
--cc=caml-list@davidb.org \
--cc=caml-list@inria.fr \
--cc=jove@newmail.ru \
--cc=rich@annexia.org \
/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