[racket-dev] Optional equality predicate for assoc and member

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Fri Apr 22 18:33:40 EDT 2011

Vincent St-Amour wrote at 04/22/2011 04:26 PM:
> With this patch, assoc and member are implemented in Racket. They are currently implemented in C. I haven't measured the performance impact of the change, but I can do it if someone believes it's necessary.

Testing performance impact of reimplementing these procedures seems 
appropriate to me.  For one thing, they are old RnRS procedures that 
performance-sensitive people have assumed are implemented about as fast 
as they could be for general-purpose linear searches.

Also, if it turned out that "assoc" (or "assq") took a significant 
adverse performance hit, that might create a big barrier to a particular 
production system upgrading its Racket version.

I imagine you might even make these procedures faster by moving from C 
to pure Racket implementations, where there is more info from which to 
optimize calls to the procedures.


Posted on the dev mailing list.