From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id JAA23213; Mon, 12 Aug 2002 09:37:01 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id JAA23209 for ; Mon, 12 Aug 2002 09:37:00 +0200 (MET DST) Received: from dewberry.cc.columbia.edu (dewberry.cc.columbia.edu [128.59.59.68]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id g7C7DM504936 for ; Mon, 12 Aug 2002 09:13:30 +0200 (MET DST) Received: from there (tw304h3.cpmc.columbia.edu [156.111.84.180]) by dewberry.cc.columbia.edu (8.9.3/8.9.3) with SMTP id VAA16373 for ; Sun, 11 Aug 2002 21:08:00 -0400 (EDT) Message-Id: <200208120108.VAA16373@dewberry.cc.columbia.edu> Content-Type: text/plain; charset="iso-8859-1" From: Oleg To: caml-list@inria.fr Subject: [Caml-list] sorting Hashtbl.t Date: Sun, 11 Aug 2002 21:08:24 -0400 X-Mailer: KMail [version 1.3.2] MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Hi Hashtbl.iter does not always iterate in an orderly fashion, for instance let h = Hashtbl.create 3 in for i = 1 to 10 do Hashtbl.add h i i done; Hashtbl.iter (Printf.printf "%d, %d\n") h;; Produces: 7, 7 8, 8 1, 1 9, 9 2, 2 10, 10 3, 3 4, 4 5, 5 6, 6 Is there any way to sort Hashtlb.t or otherwise make Hashtbl.iter iterate elements in order [1]? Thanks Oleg [1] One could of course copy elements to a list or an array, then sort and iterate the latter, but I suppose it is inefficient, as hash table elements are "almost sorted". ------------------- 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