diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-03-08 06:13:35 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-03-08 06:13:35 +0000 |
| commit | c456d2b4330ccc81ab1b9e5ef25ff706d2cedd43 (patch) | |
| tree | 25184126f346f251dea21b9cb1e3cedecaf966f4 /challenge-103/abigail/data/preprocess | |
| parent | 4ca90aa3b8a785fe2e2d0b64524c42c4015f11bf (diff) | |
| download | perlweeklychallenge-club-c456d2b4330ccc81ab1b9e5ef25ff706d2cedd43.tar.gz perlweeklychallenge-club-c456d2b4330ccc81ab1b9e5ef25ff706d2cedd43.tar.bz2 perlweeklychallenge-club-c456d2b4330ccc81ab1b9e5ef25ff706d2cedd43.zip | |
- Added template for challenge 103.
Diffstat (limited to 'challenge-103/abigail/data/preprocess')
| -rwxr-xr-x | challenge-103/abigail/data/preprocess | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/challenge-103/abigail/data/preprocess b/challenge-103/abigail/data/preprocess new file mode 100755 index 0000000000..3e16a0fc07 --- /dev/null +++ b/challenge-103/abigail/data/preprocess @@ -0,0 +1,138 @@ +#!/opt/perl/bin/perl + +use 5.032; + +use strict; +use warnings; +no warnings 'syntax'; + +use experimental 'signatures'; +use experimental 'lexical_subs'; + +open my $fh, "<", "rare_numbers.txt" or die "open rare_numbers.txt: $!"; + +my @buckets; + +while (my $rn = <$fh>) { + chomp $rn; + $rn =~ s/^[0-9]+\s+//; + push @{$buckets [length $rn]} => $rn; +} + +my @bs = sort {$a <=> $b} grep {$buckets [$_]} keys @buckets; + + +open my $awk_h, ">", "rn.awk" or die "open rn.awk: $!"; +open my $bash_h, ">", "rn.sh" or die "open rn.sh: $!"; +open my $basic_h, ">", "rn.bas" or die "open rn.bas: $!"; +open my $c_h, ">", "rn.c" or die "open rn.c: $!"; +open my $lua_h, ">", "rn.lua" or die "open rn.lua: $!"; +open my $node_h, ">", "rn.js" or die "open rn.js: $!"; +open my $perl_h, ">", "rn.pl" or die "open rn.pl: $!"; +open my $python_h, ">", "rn.py" or die "open rn.py: $!"; +open my $ruby_h, ">", "rn.rb" or die "open rn.rb: $!"; + +my $basic_ln = 1000; + +say $awk_h "BEGIN {"; +say $bash_h "declare -a rare_numbers\n"; +say $basic_h "$basic_ln INPUT length\n\n"; +say $c_h "char * rare_numbers [23];\n"; +say $c_h "int main () {"; +say $lua_h "rare_numbers = {}\n"; +say $node_h "let rare_numbers = []\n"; +say $perl_h "my \@rare_numbers;\n"; +say $python_h "rare_numbers = {}\n"; +say $ruby_h "rare_numbers = Array . new"; + +foreach my $bs (0 .. 22) { + if (!$buckets [$bs]) { + printf $c_h " rare_numbers [%2d] = NULL;\n" + => $bs; + next; + } + + # + # AWK + # + printf $awk_h ' rare_numbers [%2d] = ', $bs; + print $awk_h join " \\\n " => + map {sprintf "%26s", qq {"$_\\n"}} @{$buckets [$bs]}; + print $awk_h "\n"; + + # + # Bash + # + printf $bash_h 'rare_numbers[%2d]=', $bs; + print $bash_h join "\\\n" => + map {qq {"$_\\n"}} @{$buckets [$bs]}; + print $bash_h "\n"; + + # + # BASIC + # + for my $rn (@{$buckets [$bs]}) { + printf $basic_h qq {%03d IF length = %2d THEN PRINT %24s\n} + => ($basic_ln += 10), $bs, qq {"$rn"} + } + + # + # C + # + printf $c_h ' rare_numbers [%2d] = ', $bs; + print $c_h join " \\\n " => + map {sprintf "%26s", qq {"$_\\n"}} @{$buckets [$bs]}; + print $c_h ";\n"; + + # + # Lua + # + printf $lua_h "rare_numbers [%2d] = ", $bs; + print $lua_h join " ..\n " => + map {sprintf "%26s", qq {"$_\\n"}} @{$buckets [$bs]}; + print $lua_h "\n"; + + # + # Node.js + # + printf $node_h "rare_numbers [%2d] = ", $bs; + print $node_h join " +\n " => + map {sprintf "%26s", qq {"$_\\n"}} @{$buckets [$bs]}; + print $node_h "\n"; + + # + # Perl + # + printf $perl_h '$rare_numbers [%2d] = ', $bs; + print $perl_h join " .\n " => + map {sprintf "%26s", qq {"$_\\n"}} @{$buckets [$bs]}; + say $perl_h ";"; + + # + # Python + # + printf $python_h "rare_numbers [%4s] =", "'$bs'"; + print $python_h join " +\\\n " => + map {sprintf "%26s", qq {"$_\\n"}} @{$buckets [$bs]}; + print $python_h "\n"; + + # + # Ruby + # + printf $ruby_h "rare_numbers [%2s] =", $bs; + print $ruby_h join " +\n " => + map {sprintf "%26s", qq {"$_\\n"}} @{$buckets [$bs]}; + print $ruby_h "\n"; +} +say $awk_h "}"; +say $c_h "}"; + + +close $awk_h or die "close rn.awk: $!"; +close $bash_h or die "close rn.sh: $!"; +close $c_h or die "close rn.n: $!"; +close $lua_h or die "close rn.lua: $!"; +close $node_h or die "close rn.js: $!"; +close $perl_h or die "close rn.pl: $!"; +close $python_h or die "close rn.py: $!"; +close $ruby_h or die "close rn.rb: $!"; |
