|
|
1.1 ! root 1: procedure spell(n) ! 2: local m ! 3: n := integer(n) ! 4: return ( ! 5: if n <= 12 then ! 6: "0zero,1one,2two,3three,4four,5five,6six,7seven,8eight,_ ! 7: 9nine,10ten,11eleven,12twelve," ? { ! 8: tab(find(n)) ! 9: move(*n) ! 10: tab(upto(",")) ! 11: } ! 12: else if n <= 19 then ! 13: spell(n[2] || "0") ? ! 14: (if ="for" then "four" else tab(find("ty"))) || "teen" ! 15: else if n <= 99 then ! 16: "2twen,3thir,4for,5fif,6six,7seven,8eigh,9nine," ? { ! 17: tab(upto(n[1])) ! 18: move(1) ! 19: tab(upto(",")) || "ty" || ! 20: if n[2] ~= 0 then "-" || spell(n[2]) ! 21: } ! 22: else if n <= 999 then ! 23: spell(n[1]) || " hundred" || ! 24: (if (m := n[2+:2]) ~= 0 then " and " || spell(m)) ! 25: else if n <= 999999999 then ! 26: spell(n[1:-3]) ? ! 27: (tab(find("thousand")) || (move(8) & "million") | "") || ! 28: tab(0) || ! 29: " thousand" || ! 30: (if (m := n[-3:0]) ~= 0 then ", " || spell(m)) ! 31: else ! 32: "number too large" ! 33: ) ! 34: end ! 35: ! 36: procedure spellw(n) ! 37: write(n, " ", spell(n)) ! 38: return ! 39: end ! 40: ! 41: procedure main() ! 42: every spellw(1 to 25) ! 43: every spellw(30 to 110 by 3) ! 44: spellw(945123342) ! 45: every spellw(10000000 to 10000500) ! 46: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.