Eban numbers: Difference between revisions
m
→{{header|Perl 6}}: Better output formatting, trap some edge case errors.
Thundergnat (talk | contribs) m (→{{header|Perl 6}}: account for zero) |
Thundergnat (talk | contribs) m (→{{header|Perl 6}}: Better output formatting, trap some edge case errors.) |
||
Line 36:
=={{header|Perl 6}}==
{{works with|Rakudo|2018.12}}
Modular approach, very little is hard coded. Change the order of magnitude limits to adjust the search/display ranges. Change the letter given to the nban sub to change which letter to disallow.
Demonstrate for e-ban and t-ban. n-ban and i-ban are interesting too.
<lang perl6>use Lingua::EN::Numbers::Cardinal;
Line 50:
my @ban = flat ((1 .. 99),).map: *.&nban($n);
my @orders =
for @orders -> @order {
Line 63:
@ban.unshift(0) if 0.&nban($n);
say "\
say "
say
my @j = @ban.grep: 1000 <= * <= 4000;
say '';
▲ say "From 1,000 to 4,000: ", +@j;
▲ say '=' x 40;
-> $e {
my $f = @ban.first( * >
▲ say '=' x 40;
}
}</lang>
{{out}}
<pre>
[2 4 6 30 32 34 36 40 42 44 46 50 52 54 56 60 62 64 66]
▲Up to 100: 19
========================================▼
[2000 2002 2004 2006 2030 2032 2034 2036 2040 2042 2044 2046 2050 2052 2054 2056 2060 2062 2064 2066 4000]
▲From 1,000 to 4,000: 21
Up to 10
Up to
Up to
Up to 10,000,000: 1599
▲Up to 100,000,000: 7999
Up to 1,000,000,000: 7999
t-ban numbers up to 100: 9
[0 1 4 5 6 7 9 11 100]
▲Up to 100: 9
[]
Up to 10: 7
▲From 1,000 to 4,000: 0
Up to 100: 9
Up to
Up to 10,000: 56
Up to 100,000: 56
Up to 1,000,000: 57
Up to
Up to 100,000,000: 393
Up to
▲Up to 100,000,000: 392
▲Up to 1,000,000,000: 2744
=={{header|REXX}}==
|