[racket] hash table confusion

From: J. Ian Johnson (ianj at ccs.neu.edu)
Date: Sat Dec 28 17:15:25 EST 2013

You want to make sure your structs are inspectable. You can define your structs with the #:transparent option or define your own equality relation with the gen:equal+hash generic interface.
-Ian
----- Original Message -----
From: Manfred Lotz <manfred.lotz at arcor.de>
To: users at racket-lang.org
Sent: Sat, 28 Dec 2013 15:41:28 -0500 (EST)
Subject: [racket] hash table confusion

I have a hash table (created by using make-hash) where the key is a
struct. This seems to work fine although the documentation says
   The make-hash procedure creates a table where keys are compared with
   equal?,...

and it seems that equal? gives #f if I compare two structs having the
same contents:


(struct cpd (x y))

(define C1 (cpd 1 "bla"))
(define C2 (cpd 1 "bla"))

(equal? C1 C2)
#f


Why does my hash table work fine? In my hash handling I'm using
make-hash, hash-ref!, hash-set!, hash-for-each.

-- 
Manfred


____________________
  Racket Users list:
  http://lists.racket-lang.org/users


Posted on the users mailing list.