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

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Sun Apr 24 21:30:47 EDT 2011

Eli Barzilay wrote at 04/24/2011 09:01 PM:
> Related to the other thing I said: if you have code that depends on fast assoc-ing, and you don't have cycles, then rolling your own version is probably going to be faster anyway.

Good point.  I believe this was not case when I was profiling several 
different implementations of certain list procedures under PLT 4.2.x 
(e.g., calling C "assq" was faster on our large-ish alists than what 
should have been optimal Scheme code for doing the same on acyclic 
alists), but the JIT has improved since then.

I think this is not a showstopper situation, and I have a few 
app-specific optimizations ready in my back pocket if necessary, so that 
this app can upgrade to new Racket versions without giving up its 
pervasive use of alists.  (The original architect had good reasons to 
use alists that way, I have to mention.)


Posted on the dev mailing list.