diff options
| author | Jaldhar H. Vyas <jaldhar@braincells.com> | 2021-11-28 23:59:30 -0500 |
|---|---|---|
| committer | Jaldhar H. Vyas <jaldhar@braincells.com> | 2021-11-28 23:59:30 -0500 |
| commit | cd2c554c4408b93595a5e2816a2bb05e525615c3 (patch) | |
| tree | 6f92b887fa04b19a8cca906fc8dfc253269760e3 /challenge-140 | |
| parent | b81cafbb9326efe10251a65de7a8a154fd32b30b (diff) | |
| download | perlweeklychallenge-club-cd2c554c4408b93595a5e2816a2bb05e525615c3.tar.gz perlweeklychallenge-club-cd2c554c4408b93595a5e2816a2bb05e525615c3.tar.bz2 perlweeklychallenge-club-cd2c554c4408b93595a5e2816a2bb05e525615c3.zip | |
Challenge 140 by Jaldhar H. Vyas.
Diffstat (limited to 'challenge-140')
| -rw-r--r-- | challenge-140/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-140/jaldhar-h-vyas/perl/ch-1.pl | 40 | ||||
| -rwxr-xr-x | challenge-140/jaldhar-h-vyas/perl/ch-2.pl | 17 | ||||
| -rwxr-xr-x | challenge-140/jaldhar-h-vyas/raku/ch-1.raku | 19 | ||||
| -rwxr-xr-x | challenge-140/jaldhar-h-vyas/raku/ch-2.sh | 3 |
5 files changed, 80 insertions, 0 deletions
diff --git a/challenge-140/jaldhar-h-vyas/blog.txt b/challenge-140/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..073cabdd1a --- /dev/null +++ b/challenge-140/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2021/11/perl_weekly_challenge_week_140.html diff --git a/challenge-140/jaldhar-h-vyas/perl/ch-1.pl b/challenge-140/jaldhar-h-vyas/perl/ch-1.pl new file mode 100755 index 0000000000..2c06ad861a --- /dev/null +++ b/challenge-140/jaldhar-h-vyas/perl/ch-1.pl @@ -0,0 +1,40 @@ +#!/usr/bin/perl +use 5.020; +use warnings; + +package Binary; +use overload '+' => 'add'; +use overload '""' => 'toString'; + +sub new { + my ($class, $str) = @_; + my $self = \"0b$str"; + bless $self, $class; + return $self; +} + +sub add { + my ($self, $other) = @_; + say "overload!"; + return Binary->new( + sprintf '%b', (sprintf '%d', oct $$self) + (sprintf '%d', oct $$other) + ); +} + +sub toString { + my ($self) = @_; + return sprintf '%b', oct $$self; +} + +package main; +use 5.020; +use warnings; + +if (scalar @ARGV != 2) { + die "Need two binary numbers.\n"; +} + +my $a = Binary->new($ARGV[0]); +my $b = Binary->new($ARGV[1]); + +say $a + $b; diff --git a/challenge-140/jaldhar-h-vyas/perl/ch-2.pl b/challenge-140/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..f6468aea8f --- /dev/null +++ b/challenge-140/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,17 @@ +#!/usr/bin/perl +use 5.020; +use warnings; + +if (scalar @ARGV != 3) { + die "need three integers.\n"; +} + +my @table; + +for my $i (1 .. $ARGV[0]) { + for my $j (1 .. $ARGV[1]) { + push @table, $i * $j; + } +} + +say 0+(sort { $a <=> $b } @table)[$ARGV[2] - 1]; diff --git a/challenge-140/jaldhar-h-vyas/raku/ch-1.raku b/challenge-140/jaldhar-h-vyas/raku/ch-1.raku new file mode 100755 index 0000000000..e4d8bccd02 --- /dev/null +++ b/challenge-140/jaldhar-h-vyas/raku/ch-1.raku @@ -0,0 +1,19 @@ +#!/usr/bin/raku + +# A simple way to add two binary numbers +# raku -e '(@*ARGS[0].parse-base(2) + @*ARGS[1].parse-base(2)).base(2).say;' $@ + +multi sub infix:<+>( + IntStr:D $a, + IntStr:D $b +) { + say 'overload!'; + return ($a.parse-base(2) + $b.parse-base(2)).base(2); +} + +sub MAIN( + Str $a, + Str $b +) { + say $a + $b; +} diff --git a/challenge-140/jaldhar-h-vyas/raku/ch-2.sh b/challenge-140/jaldhar-h-vyas/raku/ch-2.sh new file mode 100755 index 0000000000..debe5f8a35 --- /dev/null +++ b/challenge-140/jaldhar-h-vyas/raku/ch-2.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +raku -e '(1 .. @*ARGS[0] X* 1 .. @*ARGS[1]).sort({$^a <=> $^b})[@*ARGS[2] - 1].say;' $@
\ No newline at end of file |
