RosettaCodeData/Task/Four-is-magic/APL/four-is-magic.apl
2023-07-01 13:44:08 -04:00

27 lines
1.2 KiB
APL

magic{
t20'one' 'two' 'three' 'four' 'five' 'six' 'seven' 'eight' 'nine'
t20t20,'ten' 'eleven' 'twelve' 'thirteen' 'fourteen' 'fifteen' 'sixteen'
t20t20,'seventeen' 'eighteen' 'nineteen'
tens'twenty' 'thirty' 'forty' 'fifty' 'sixty' 'seventy' 'eighty' 'ninety'
spell{
=0:'zero'
{
=0:''
<20:t20
<100:tens[(÷10)-1],((0r)/'-'),r10|
<1000:(÷100),' hundred',((0r)/' '),r100|
<1e6:(÷1000),' thousand',((0r)/' '),r1000|
<1e9:(÷1e6),' million',((0r)/' '),r1e6|
<1e12:(÷1e9),' billion',((0r)/' '),r1e9|
<1e15:(÷1e12),' trillion',((0r)/' '),r1e12|
<1e18:(÷1e15),' quadrillion',((0r)/' '),r1e15|
<1e21:(÷1e18),' quintillion',((0r)/' '),r1e18|
'Overflow' ⎕SIGNAL 11
}
}
1(819)@1{
nspell
=4:n,' is magic.'
n,' is ',(spell n),', ',n
}
}