/* pieces.tc - lrb - Halloween 2007 /* based on a "99 bottles of beer on the wall" program in Mouse (99bot.mse) /* made "sequential recursive" - November 1 int d /* global delay variable /* main program pieces [ int s pl"Enter a delay value [1,200] " d=gn pl"Enter a number [1,99] " s=gn;s=s+9 pl"" while(((s=s-9)>0)*(s<100)) [ if (s>9) verse(s,9) else verse(s,s) ] ] /* display a verse /* t becomes a displayed count /* u is never greater than some maximum recursive depth (here it's 9) verse int t,u [ if(u) [ number(t);piece(t);shelf;ps",";pl"" number(t);piece(t);ps".";pl"" fall;pl"" number(t-1);piece(t-1);shelf;ps".";pl"";pl"" delay verse(t-1,u-1) /* recursive call ] ] piece int s [ ps" piece";if(s!=1) ps"s";ps" of pumpkin pie" ] shelf [ps" on the shelf"] fall [ ps"If one of those pieces of pumpkin pie should happen to fall ..." ] /* print count in English number int s [ int u,w,v u=s;w=0 if(s>9) [ /* we have 10 (or