Version française
Home     About     Download     Resources     Contact us    
Browse thread
Hashtbl.remove legal within Hashtbl.iter for the same hash table?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Julien Peeters <jj.peeters@g...>
Subject: Re: [Caml-list] Hashtbl.remove legal within Hashtbl.iter for the same hash table?
Hi David,

Because the arguments passed to functions could be considered as references
(same memory space), IMHO, if you respect the scope priority it should work.

For instance:

let () =
    let h = Hashtbl.create 7 in
    let f k v = Hashtbl.remove h k in
        Hashtbl.iter f h

Julien.

2008/5/11 David MENTRE <dmentre@linux-france.org>:

> Hello,
>
> Probably a newbie question but anyway: is it allowed to do a
> Hashtbl.remove while doing a Hashtbl.iter on the same hash table?
>
> More precisely, at one point while doing a "Hashtbl.iter f h" my
> function "f" is called with something like "f k v". Can I do a
> "Hashtbl.remove h k" within the body of "f"?
>
> Sincerely yours,
> david
> --
> GPG/PGP key: A3AD7A2A David MENTRE <dmentre@linux-france.org>
>  5996 CC46 4612 9CA4 3562  D7AC 6C67 9E96 A3AD 7A2A
>
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>



-- 
Julien Peeters
Student in engineering
Institut de Formation des Ingénieurs de Paris-Sud
Orsay, France
Website: http://www.dedilabs.com/~jpeeters