This blog entry is about mechanically optimizing Common Lisp (CL) code. We will not discuss optimizing algorithms; instead we’ll transform the code in rote ways to improve performance. To illustrate these techniques, we’ll re-implement Perl’s core Text::Soundex function in CL. Let’s start with the Perl code, straight from the 5.8.8 distribution. $soundex_nocode = undef; sub soundex { local (@s, $f, $fc, $_) = @_; push @s, '' unless @s; # handle no args as a single empty string foreach...