[plt-scheme] Advanced Student vs blinding speed

From: Bill Richter (richter at math.northwestern.edu)
Date: Wed Feb 12 22:39:30 EST 2003

It seems that much tweaking is needed to make an Advanced Student
program run at blinding speed on a Scheme->C compiler.  But now I
think this is OK.  Here's a letter I just got from my teacher:

   You now have programs which do about what the old ones do. You are
   falling into the trap. Computer lambda algebra calculations are
   adictive and do not lead to new results. Look at the tables for all
   spheres to the 50 stem. No one has bothered to compute the
   differentials. Also, machines these days are very much faster than
   the Sun 2 which we used in the old days. I guess some of the work
   was done on a Sun 4. Anyway, it is more profitable to let the
   machine do the calculations. You are now well into the middle
   80's. It is time to get to the new theorems...

I say there's a need for my Scheme `lambda algebra calculations', but
it's not to break the old speed records set on Sun 4s with C programs.

The need is different: I want to write a paper explaining how to
calculate the 1st 25 or 30 stems (not 50) by hand.  Turns out the only
way to make these "hand" calculations is to get the computer to do it,
and then check the computer calculations!  The book-keeping is too
overwhelming otherwise.  I claim this is useful exercise, as it
teaches things far removed from the computer programs.  That is,
different ideas allow one to hand calculate the 1st 25 or 30 stems.
Ideas which haven't been codified into an algorithm yet.

So what I need is a nicely written program that folks can look at and
understand, and then run for the low stems where speed isn't an issue.
Sounds like a job for Advanced Student!

An AMS Memoir on this subject included a few pages of Snobol code,
which was incomprehensible to me, even though I learned a little
Snobol 25 years ago.  And there's a nice book (HtDP) which I can point
folks too which explains Advanced Student...  And maybe with a nice
language, I'll figure out how to codify my ideas for the hand
calculations.  Right now it's various ad-hoc techniques, but having a
language I can think in... maybe I code some of it up...

Posted on the users mailing list.