From ec34b1f4e29bb6ece971838525231cd81b92cad3 Mon Sep 17 00:00:00 2001 From: Nick Logan Date: Wed, 10 Apr 2019 23:16:27 -0400 Subject: Add note explaining lack of best practices --- challenge-001/nick-logan/perl5/ch-1.pl | 2 ++ challenge-001/nick-logan/perl5/ch-2.pl | 4 ++-- challenge-001/nick-logan/perl6/ch-1.p6 | 2 ++ challenge-001/nick-logan/perl6/ch-2.p6 | 4 ++-- challenge-002/nick-logan/perl5/ch-1.pl | 2 ++ challenge-002/nick-logan/perl5/ch-2.pl | 2 ++ challenge-002/nick-logan/perl6/ch-1.p6 | 2 ++ challenge-002/nick-logan/perl6/ch-2.p6 | 2 ++ challenge-002/nick-logan/perl6/to-base35.p6 | 6 ++++-- 9 files changed, 20 insertions(+), 6 deletions(-) diff --git a/challenge-001/nick-logan/perl5/ch-1.pl b/challenge-001/nick-logan/perl5/ch-1.pl index c35822d44b..e20ce33987 100644 --- a/challenge-001/nick-logan/perl5/ch-1.pl +++ b/challenge-001/nick-logan/perl5/ch-1.pl @@ -1 +1,3 @@ +# WARNING: this polyglot breaks best practices of both Perl 5 and Perl 6 in order to run on both + print((($_ eq "e") and uc($_) or $_)) for split("", "Perl Weekly Challenge") diff --git a/challenge-001/nick-logan/perl5/ch-2.pl b/challenge-001/nick-logan/perl5/ch-2.pl index cb8a9074af..00372d5c38 100644 --- a/challenge-001/nick-logan/perl5/ch-2.pl +++ b/challenge-001/nick-logan/perl5/ch-2.pl @@ -1,3 +1,3 @@ -print((join( "", (!($_ % 3) and "Fizz" or ""), (!($_ % 5) and "Buzz" or "") ) or $_), "\n") for 1..20; - +# WARNING: this polyglot breaks best practices of both Perl 5 and Perl 6 in order to run on both +print((join( "", (!($_ % 3) and "Fizz" or ""), (!($_ % 5) and "Buzz" or "") ) or $_), "\n") for 1..20; diff --git a/challenge-001/nick-logan/perl6/ch-1.p6 b/challenge-001/nick-logan/perl6/ch-1.p6 index c35822d44b..e20ce33987 100644 --- a/challenge-001/nick-logan/perl6/ch-1.p6 +++ b/challenge-001/nick-logan/perl6/ch-1.p6 @@ -1 +1,3 @@ +# WARNING: this polyglot breaks best practices of both Perl 5 and Perl 6 in order to run on both + print((($_ eq "e") and uc($_) or $_)) for split("", "Perl Weekly Challenge") diff --git a/challenge-001/nick-logan/perl6/ch-2.p6 b/challenge-001/nick-logan/perl6/ch-2.p6 index cb8a9074af..00372d5c38 100644 --- a/challenge-001/nick-logan/perl6/ch-2.p6 +++ b/challenge-001/nick-logan/perl6/ch-2.p6 @@ -1,3 +1,3 @@ -print((join( "", (!($_ % 3) and "Fizz" or ""), (!($_ % 5) and "Buzz" or "") ) or $_), "\n") for 1..20; - +# WARNING: this polyglot breaks best practices of both Perl 5 and Perl 6 in order to run on both +print((join( "", (!($_ % 3) and "Fizz" or ""), (!($_ % 5) and "Buzz" or "") ) or $_), "\n") for 1..20; diff --git a/challenge-002/nick-logan/perl5/ch-1.pl b/challenge-002/nick-logan/perl5/ch-1.pl index f7787b8a04..ffbf7bc003 100644 --- a/challenge-002/nick-logan/perl5/ch-1.pl +++ b/challenge-002/nick-logan/perl5/ch-1.pl @@ -1 +1,3 @@ +# WARNING: this polyglot breaks best practices of both Perl 5 and Perl 6 in order to run on both + my @ARGV = do { sub eval($_) { &EVAL($_) }; eval( ("0" and q|@*ARGS| or q|@ARGV|) ) }; print("$_\n") for map &{ sub ($_) { /^0(0|1|2|3|4|5|6|7|8|9)+/ and (0+$_) or $_ } }.(), @ARGV; diff --git a/challenge-002/nick-logan/perl5/ch-2.pl b/challenge-002/nick-logan/perl5/ch-2.pl index f6d6226cda..95628189ed 100644 --- a/challenge-002/nick-logan/perl5/ch-2.pl +++ b/challenge-002/nick-logan/perl5/ch-2.pl @@ -1,3 +1,5 @@ +# WARNING: this polyglot breaks best practices of both Perl 5 and Perl 6 in order to run on both + my @ARGV = do { sub eval { chomp &EVAL(@_) }; eval( ("0" and q|@*ARGS| or q|@ARGV|) ) }; my ($state, $result, $dict, $base35) = (1, "", {}, @ARGV[0]); $dict{$_} = $_ for "1".."9"; diff --git a/challenge-002/nick-logan/perl6/ch-1.p6 b/challenge-002/nick-logan/perl6/ch-1.p6 index f7787b8a04..ffbf7bc003 100644 --- a/challenge-002/nick-logan/perl6/ch-1.p6 +++ b/challenge-002/nick-logan/perl6/ch-1.p6 @@ -1 +1,3 @@ +# WARNING: this polyglot breaks best practices of both Perl 5 and Perl 6 in order to run on both + my @ARGV = do { sub eval($_) { &EVAL($_) }; eval( ("0" and q|@*ARGS| or q|@ARGV|) ) }; print("$_\n") for map &{ sub ($_) { /^0(0|1|2|3|4|5|6|7|8|9)+/ and (0+$_) or $_ } }.(), @ARGV; diff --git a/challenge-002/nick-logan/perl6/ch-2.p6 b/challenge-002/nick-logan/perl6/ch-2.p6 index f6d6226cda..95628189ed 100644 --- a/challenge-002/nick-logan/perl6/ch-2.p6 +++ b/challenge-002/nick-logan/perl6/ch-2.p6 @@ -1,3 +1,5 @@ +# WARNING: this polyglot breaks best practices of both Perl 5 and Perl 6 in order to run on both + my @ARGV = do { sub eval { chomp &EVAL(@_) }; eval( ("0" and q|@*ARGS| or q|@ARGV|) ) }; my ($state, $result, $dict, $base35) = (1, "", {}, @ARGV[0]); $dict{$_} = $_ for "1".."9"; diff --git a/challenge-002/nick-logan/perl6/to-base35.p6 b/challenge-002/nick-logan/perl6/to-base35.p6 index 683acda914..e4f7e98a95 100644 --- a/challenge-002/nick-logan/perl6/to-base35.p6 +++ b/challenge-002/nick-logan/perl6/to-base35.p6 @@ -1,3 +1,5 @@ +# WARNING: this polyglot breaks best practices of both Perl 5 and Perl 6 in order to run on both + # bin/to-base35 sub to_int($_) { my @i = split(/"."/, $_[0]); @i[0] }; my @ARGV = do { sub eval { chomp &EVAL(@_) }; eval( ("0" and q|@*ARGS| or q|@ARGV|) ) }; @@ -5,7 +7,7 @@ my ($result, $dict, $base10) = ("", {}, @ARGV[0]); $dict{$_} = $_ for "1".."9"; $dict{ord($_) - 55} = $_ for "A".."Y"; while ($base10 > 0) { - $result = join("", $dict{to_int($base10 % 35)}, $result); - $base10 = to_int($base10 / 35); + $result = join("", $dict{to_int($base10 % 35)}, $result); + $base10 = to_int($base10 / 35); } print("$result\n"); -- cgit