[racket] hash table confusion

From: Sam Tobin-Hochstadt (samth at cs.indiana.edu)
Date: Sat Dec 28 18:34:34 EST 2013

While your answer is what Manfred is looking for, I still find the original
behavior worrying. It lets you expose the internals of opaque data
structures without having the relevant inspector.

Sam
On Dec 28, 2013 4:16 PM, "J. Ian Johnson" <ianj at ccs.neu.edu> wrote:

> 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
>
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20131228/e7553a4c/attachment.html>

Posted on the users mailing list.