[racket-dev] racket2 suggestion: removing (or extending) eqv?

From: Jon Zeppieri (zeppieri at gmail.com)
Date: Sat May 4 22:04:44 EDT 2013

On Sat, May 4, 2013 at 9:46 PM, John Gateley <racket at jfoo.org> wrote:
>
>
> On 5/4/2013 8:26 PM, Robby Findler wrote:
>> Some characters have the equal? implies eq? property (the ASCII ones and
>> maybe a few more, I'm not sure) and some don't (#\λ for example).
>
>
> Excellent point, and now I understand your efficiency comment better.
> There's a definite parallel between bignums and multi-byte characters.

I disagree. There is a parallel between fixnums and characters,
multi-byte or not, because char->integer always returns a fixnum and
integer->char is only defined on a subset of the fixnums.

However, I don't think this is any kind of knock-down argument in
favor of eq?-ness for characters. It's just a nice-to-have.

Robby, after looking at the macros in scheme.h, I understand now why
it would be a big job. I hadn't realized that all of the unique
objects (like null, EOF, void, and so forth) were all represented as
pointers to statically allocated structs. So there's a basic
assumption that if a value doesn't satisfy SCHEME_INTP(), then it's a
pointer.


Posted on the dev mailing list.