Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Problem in modifying a mutable element in an array
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: WatchDog <watchdog@f...>
Subject: [Caml-list] Problem in modifying a mutable element in an array
Hello !
My problem has first appeared in a CamlLight implementation, but I have 
then tried to do the same on O'Caml and the problem remained equal. But 
I'm sure you'll be able to provide some help, won't you ?
In Caml Light :

#open "random";;
type agent = { mutable initial : int ; mutable courant : int ;
               mutable longueur : float ; mutable liste_parcourue : int 
list ;
               à_visiter : int vect } ;;
let agent_init = { initial = 0 ; courant = 0 ; longueur = 0. ; 
liste_parcourue = [] ;
                   à_visiter = make_vect n 1 } ;;
let f = make_vect m agent_init ;;
 
let set_f () = for p = 0 to (m-1) do
   begin     
      f.(p).initial <- (int n) ;
      f.(p).courant <- (int n) ;
      f.(p).liste_parcourue <- [(int n)] ;
      f.(p).à_visiter.(int n) <- 0
   end
done
;;


And then set_f() doesn't work properly : it seems Caml refuses to modify 
one element (for instance f.(5).initial) without modifying automatically 
all its brothers, e.g. all the f.(i).initial ; for i from 0 to (m-1).
The fact is that I'd like to modify it element-by-element, and not all 
at the same time.

Your help would be a real relief !!
Thanks

JB, from Paris.

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