Okay thank you.

If anyone cared to know I had something completely ridiculous.

My failed attempt.

/convert <number to convert> <base to convert from> <base to convert to>...

Code:
convert {
  if ($2 > $3) {
    echo -a So $2 is bigger than $3 $+ , converting $1 in base $2 to base $3 $+ .
    if (. isin $calc($1 / $3)) {
      var %digit = $gettok($calc($1 / $3),1,46)
      var %remainder = . $+ $gettok($calc($1 / $3),2,46)
      %remainder = $calc(%remainder * $3)
      set %n 1
      while (%digit > 0) {
        var %digit = $gettok($calc(%digit / $3),1,46)
        inc %n 
        var $eval($+(%,remainder,%n)) = . $+ $gettok($calc(%digit / $3),2,46) 
        var $eval($+(%,remainder,%n)) = $calc($eval($+(%,remainder,%n),2) * $3)
        var %remainder = $addtok(%remainder,$eval($+(%,remainder,%n),2),32)
      }
    }
    if (. !isin $calc($1 / $3)) {
      var %remainder = 0
    }
  }
  echo -a %remainder
  ;Then echo -a $wordreverse(%remainder)
}


I got into this whole $eval() mess for having %remainder1 %remainder2, etc., all the way to however many. Clearly the amount of remainders will go as however long this code is, so clearly I needed to while loop.

Basically I just tried to make %remainder = %remainder1 %remainder2 etc.

I believe this code only stops at 2 remainders and I was having some $eval() problems before hand.

-Neal.

Last edited by LostShadow; 30/09/07 06:06 PM.