RosettaCodeData/Task/Number-names/APL/number-names.apl

28 lines
937 B
APL
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
spell{⎕IO0
small'' 'one' 'two' 'three' 'four' 'five' 'six' 'seven' 'eight'
small,'nine' 'ten' 'eleven' 'twelve' 'thirteen' 'fourteen'
small,'fifteen' 'sixteen' 'seventeen' 'eighteen' 'nineteen'
teens'twenty' 'thirty' 'forty' 'fifty' 'sixty' 'seventy'
teens,'eighty' 'ninety'
orders'm' 'b' 'tr' 'quadr',¨'illion'
orders(¨,¨10*6+3×)orders
orders('hundred' 100)('thousand' 1000),orders
=0:'zero'
{ <0:'minus ',-
<20:small
<100:{
ty((÷10)-2)teens
0=n10|:ty
ty,'-',nsmall
}
({
name size
cur n
restsize|n
nsize:(cur,(n÷size),' ',name,((0rest)'')),rest
(cur),rest
}/orders,('')),100|
}
}