Re: Relation to sorting, checks, typos
Jens Axel Søgaard 08 Apr 2005 08:10 UTC
bear wrote:
> Just a quick word, but I've found it useful in several applications to
> have a comparison procedure that imposes a total ordering on data of
> many differnt types. This is useful mainly for making 'ordered
> collections' such as trees and ordered arrays that can use any atom as
> a key. I call it "gcmp", but there's probably a better name.
The compare procedure default-compare which uses the ordering
null < pair < boolean < char < string < symbol < number < vector < other
was meant to be used for this purpose. Since this ordering can't
accomodate all needs, we have provided refine-compare, select-compare
and cond-compare which is used to construct new compare procedures.
<http://srfi.schemers.org/srfi-67/srfi-67.html#node_idx_40>
<http://srfi.schemers.org/srfi-67/srfi-67.html#node_sec_4.5>
> The important thing is that the comparison is transitive: If (gcmp a
> b) -> #t and (gcmp b c) -> #t, then (gcmp a c) -> #t.
An order relation induced by a compare procedure is transitive.
<http://srfi.schemers.org/srfi-67/srfi-67.html#node_sec_5>
> The particular order defined isn't terribly important.
The rationale behind the current choice of ordering is founc here:
<http://srfi.schemers.org/srfi-67/srfi-67.html#node_toc_node_sec_Temp_18>
> If adopted, I think it ought
> to be okay for gcmp to have implementation-defined intertype ordering
> and complex-numeric ordering, but intratype ordering should be defined
> as for the ordering predicates within each type;
In order to allow implementations to use a straight forward
integer comparision of the tags of two values?
> the uses to which
> gcmp can be put are more related to computational requirements to
> compare and order objects for purposes of key comparison than they are
> to any inherent "real" or "mathematical" order for anything.
Agreed.
--
Jens Axel Søgaard