Who needs Ord for Sets and Maps anyway?
Johannes Waldmann
waldmann at imn.htwk-leipzig.de
Fri Jan 20 03:31:48 EST 2006
Jean-Phillipe Bernardy wrote:
> ... For example, Data.Set is
> "monomorphic", but still an abstract data type (one cannot observe the
> internal structure, and indeed we are considering changing it)
but I cannot easily choose another representation because I would have
to change my program (replace Set by AVLSet or something) everywhere.
I sometimes (reluctantly) use a detour by declaring a wrapper type
http://141.57.11.163/cgi-bin/cvsweb/lib/Autolib/FiniteMap.hs?rev=1.12
but this is an ugly workaround and the root of the problem
is that there is no defined interface for Set implementations.
Cale Gibbard wrote:
> [in Java] classes implement some interfaces, but only one
> interface at a time can be mentioned when it comes to using them.
Right. Although you can always write "interface A extends B, C {}"
and then use A for "B and C". But I agree that this is inconvenient.
> interfaces in Java are not permitted to provide
> default implementations of methods which they declare
If you want that, then you want an "abstract class", e. g.
http://java.sun.com/j2se/1.5.0/docs/api/java/util/AbstractSet.html
I think the sole purpose of an interface is to specify a contract.
Obviously the Java design choice was to not mix this
with providing help when fulfilling the contract.
Best regards,
--
-- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 --
---- http://www.imn.htwk-leipzig.de/~waldmann/ -------
More information about the Libraries
mailing list