function a($)
Dim $T,$v,$l,$n,$f,$z
$T = zero,one,two,three,four,five,six,seven,eight,nine,ten,
eleven,twelve,thirteen,fourteen,fifteen,sixteen,seventeen,eighteen,nineteen,twenty
ReDim Preserve $T[90]
$T[30]=thirty
$T[40]=forty
$T[50]=fifty
$T[60]=sixty
$T[70]=seventy
$T[80]=eighty
$T[90]=ninety
$v=Join(Split(Join(Split($, '-'), ''), ' '), '')
If $ = Val($) ; is numeric
$f=1 ; set flag
$l=Right($,1)
If $<21 ; direct translation
$v = $T[$]
Else ; tens plus ones (if not zero)
$v = $T[10*left($,1)] + IIf($l<>0,$T[$l],'')
EndIf
EndIf
If $v <> four ; don't process if input is "four"
Do
$n = Len($v) ; len of verbose number value
$z=IIf($f,$n, $T[$n]) ; len as either number or verbose value
$a = '' + $a + $ + ' is ' + $Z + '. '
$v = $T[$n] ; reset new verbose value
$=IIf($f,$z,$v)
Until $n = 4
EndIf
$a = $a + IIf($f,'4', 'four') + ' is magic.'
endfunction