func angconv ang f$ t$ .
   sgn = sign ang
   ang = abs ang
   if f$ = "degree"
      turn = ang / 360 mod 1
   elif f$ = "gradian"
      turn = ang / 400 mod 1
   elif f$ = "mil"
      turn = ang / 6400 mod 1
   elif f$ = "radian"
      turn = ang / (2 * pi) mod 1
   .
   if t$ = "degree"
      ang = turn * 360
   elif t$ = "gradian"
      ang = turn * 400
   elif t$ = "mil"
      ang = turn * 6400
   elif t$ = "radian"
      ang = turn * 2 * pi
   .
   return ang * sgn
.
func$ fmt s$ .
   return substr "        " 1 (9 - len s$) & s$ & " "
.
# 
scales$[] = [ "degree" "gradian" "mil" "radian" ]
values[] = [ -2 -1 0 1 2 6.2831853 16 57.2957795 359 399 6399 1000000 ]
numfmt 3 10
for f$ in scales$[]
   write fmt f$
   for t$ in scales$[]
      write fmt t$
   .
   print ""
   print "  ------------------------------------------------"
   for v in values[]
      write v
      for t$ in scales$[]
         write angconv v f$ t$
      .
      print ""
   .
   print ""
.
