Eban numbers: Difference between revisions

m
→‎{{header|Perl 6}}: I twiddle because I can...
(→‎{{header|Perl 6}}: Tidy up a bit, demo multi character "bans")
m (→‎{{header|Perl 6}}: I twiddle because I can...)
Line 150:
sub nban ($seq, $n = 'e') { ($seq).map: { next if .&cardinal.contains(any($n.comb)); $_ } }
 
sub filter ($n, $upto) {
my @ban = flat ((1 .. 99),).map: *.&nban($n);
my @orders = (2 .. 10$upto).map({ 10**$_ X* 1..9 }).map: *.&nban($n);
for @orders -> @order {
next unless +@order;
Line 167:
for 'e', 't', 'subur' -> $n {
 
my @bans$upto = filter($n)10; # 1e10
my @bans = filter($n, $upto);
 
# DISPLAY
Line 176 ⟶ 177:
"{$n}-ban numbers between 1,000 & 4,000: {+@j}\n{@j.gist}\n";
 
for (1 .. 10 $upto).map: { 10**$_ } -> $e {
my $f = @bans.first( * > $e, :k );
printf "Up to %14s: %d\n",comma($e), $f ?? +@bans[^$f] !! +@bans;
10,333

edits