Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] sorting Hashtbl.t
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: John Max Skaller <skaller@o...>
Subject: Re: [Caml-list] sorting Hashtbl.t

> 
> 	From an algorithmic point of view, there is no way to sort an
> hash table since there is no order attached to items. 


Ocaml has a polymorphic comparison function (which works
on all non-cyclic data structures). Therefore, any collection
of (non-cyclic) data elements can be sorted, and the request
actually makes sense. It is also something I wish to do
often.

However, I would ask for different function(s):

	Hastbl.to_list
	Hashtbl.to_lista
	Hashtbl.to_sorted_list compar
	Hashtbl.to_sorted_lista compar

which creates association list(s),

the standard version(s) producing
unique keys, and the 'a' version(s) an entry
for every element in the hashtable, with
duplicate keys in reverse order of entry into the table.
(so a sequential search finds the same value that a
Hashtbl.find would). Of course I can write this
function myself, it's just inconvenient to have to
keep doing so.

By the way: how can I make a hashtable that
uses addresses as keys? I.e. computes the hash
value on an address, not on a value.
(for collecting terms).

Hmmm. What happens if the key is a reference?

(or otherwise contains a mutable value?)



-- 
John Max Skaller, mailto:skaller@ozemail.com.au
snail:10/1 Toxteth Rd, Glebe, NSW 2037, Australia.
voice:61-2-9660-0850


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