diff options
| -rw-r--r-- | challenge-002/nick-logan/perl5/ch-1.pl | 1 | ||||
| -rw-r--r-- | challenge-002/nick-logan/perl5/ch-2.pl | 9 | ||||
| -rw-r--r-- | challenge-002/nick-logan/perl5/to-base35.pl | 11 | ||||
| -rw-r--r-- | challenge-002/nick-logan/perl6/ch-1.p6 | 1 | ||||
| -rw-r--r-- | challenge-002/nick-logan/perl6/ch-2.p6 | 9 | ||||
| -rw-r--r-- | challenge-002/nick-logan/perl6/to-base35.p6 | 11 |
6 files changed, 42 insertions, 0 deletions
diff --git a/challenge-002/nick-logan/perl5/ch-1.pl b/challenge-002/nick-logan/perl5/ch-1.pl new file mode 100644 index 0000000000..f7787b8a04 --- /dev/null +++ b/challenge-002/nick-logan/perl5/ch-1.pl @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000000..f6d6226cda --- /dev/null +++ b/challenge-002/nick-logan/perl5/ch-2.pl @@ -0,0 +1,9 @@ +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"; +$dict{$_} = ord($_) - 55 for "A".."Y"; +for (reverse grep &{ sub ($_) { $_ ne "" } }.(), split("", $base35)) { + $result += $state * $dict{$_}; + $state *= 35; +}; +print("$result\n"); diff --git a/challenge-002/nick-logan/perl5/to-base35.pl b/challenge-002/nick-logan/perl5/to-base35.pl new file mode 100644 index 0000000000..683acda914 --- /dev/null +++ b/challenge-002/nick-logan/perl5/to-base35.pl @@ -0,0 +1,11 @@ +# 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|) ) }; +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); +} +print("$result\n"); diff --git a/challenge-002/nick-logan/perl6/ch-1.p6 b/challenge-002/nick-logan/perl6/ch-1.p6 new file mode 100644 index 0000000000..f7787b8a04 --- /dev/null +++ b/challenge-002/nick-logan/perl6/ch-1.p6 @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000000..f6d6226cda --- /dev/null +++ b/challenge-002/nick-logan/perl6/ch-2.p6 @@ -0,0 +1,9 @@ +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"; +$dict{$_} = ord($_) - 55 for "A".."Y"; +for (reverse grep &{ sub ($_) { $_ ne "" } }.(), split("", $base35)) { + $result += $state * $dict{$_}; + $state *= 35; +}; +print("$result\n"); diff --git a/challenge-002/nick-logan/perl6/to-base35.p6 b/challenge-002/nick-logan/perl6/to-base35.p6 new file mode 100644 index 0000000000..683acda914 --- /dev/null +++ b/challenge-002/nick-logan/perl6/to-base35.p6 @@ -0,0 +1,11 @@ +# 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|) ) }; +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); +} +print("$result\n"); |
