Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Semantics of physical equality
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Michal Moskal <malekith@p...>
Subject: Re: [Caml-list] Semantics of physical equality
On Sat, Feb 28, 2004 at 10:40:34AM +0100, sejourne kevin wrote:
> A definition for mutable structures look ambiguous to
> me:
> 
> type test = 
> 	{
> 	mutable a:int;
> 	b:int
> 	};;
> 
> let r = {a=0;b=2};;
> 
> let x = r and y = r in 
> assert((x.a==y.a)&&(x.b==y.b)&&(x==y))
> ;;
> 
> Does this always ok ?

Yes, of course. The objects x and y are physically equal (which implies
physical equality of their fields).

However here x == y would fail:

   let x = {a = 0; b = 2}
   let y = {a = 0; b = 2}

while x.b==y.b && x.a==y.a would succeed.

-- 
: Michal Moskal :: http://www.kernel.pl/~malekith :: GCS !tv h e>+++ b++
: When in doubt, use brute force. -- Ken Thompson :: UL++++$ C++ E--- a?

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