Richard Fateman wrote:
>Presumably what you have observed is the call overhead for memq to call
>member.
Yes certainly that is most of the effect.
>In a macro expansion, that call overhead would disappear. And the
>open-coding would provide
>additional speedups (though if sbcl/cmucl is clever enough to do
>open-coding, then
>there would not be a change in that.)
sbcl and cmucl compilers are both clever enough to open code the
calls to member. You can check that by doing a disassemble on the
code.
And above all I must say that I am with Robert Dodier when he
says:
>A much better reason for replacing archaisms with CL is that
>outsiders (i.e., anyone who has spent less than a couple of
>years on the project) will understand the code better.
>Execution time does matter but it is a secondary or tertiary
>consideration in this case.
Amen to that.
Andreas