18 lines
391 B
Racket
18 lines
391 B
Racket
#lang racket/base
|
|
|
|
(provide hash-order)
|
|
|
|
(require data/order)
|
|
(require racket/contract)
|
|
|
|
(define hash-order
|
|
(order 'hash-order
|
|
any/c
|
|
eq?
|
|
(lambda (a b)
|
|
(define a-code (eq-hash-code a))
|
|
(define b-code (eq-hash-code b))
|
|
(or (< a-code b-code)
|
|
(and (= a-code b-code)
|
|
(eq? (datum-order a b) '<))))))
|