aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-11-27 11:38:11 +0000
committerGitHub <noreply@github.com>2021-11-27 11:38:11 +0000
commit716292987794da4da62ff637980bd8f81697a96a (patch)
tree171317d66e4859042bb9895a0a82447517eba65b
parentb4f572e863e3c6755748048d19e4f626babf8713 (diff)
parent5d4960e478919348fcabc4951fa07347bb515320 (diff)
downloadperlweeklychallenge-club-716292987794da4da62ff637980bd8f81697a96a.tar.gz
perlweeklychallenge-club-716292987794da4da62ff637980bd8f81697a96a.tar.bz2
perlweeklychallenge-club-716292987794da4da62ff637980bd8f81697a96a.zip
Merge pull request #5285 from wambash/challenge-week-140
solutions week 140
-rw-r--r--challenge-140/wambash/ch-1.raku20
-rw-r--r--challenge-140/wambash/ch-2.raku28
2 files changed, 48 insertions, 0 deletions
diff --git a/challenge-140/wambash/ch-1.raku b/challenge-140/wambash/ch-1.raku
new file mode 100644
index 0000000000..8b6206a267
--- /dev/null
+++ b/challenge-140/wambash/ch-1.raku
@@ -0,0 +1,20 @@
+#!/usr/bin/env raku
+
+sub add-binary (+@a) {
+ @a
+ andthen .map: { :2( ~$_ ) }\
+ andthen .sum
+ andthen .base(2)
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is add-binary( 11, 1), 100;
+ is add-binary(101, 1), 110;
+ is add-binary( 11,100), 111;
+ done-testing;
+}
+
+multi MAIN (*@a) {
+ say add-binary @a
+}
diff --git a/challenge-140/wambash/ch-2.raku b/challenge-140/wambash/ch-2.raku
new file mode 100644
index 0000000000..37dde664c6
--- /dev/null
+++ b/challenge-140/wambash/ch-2.raku
@@ -0,0 +1,28 @@
+#!/usr/bin/env raku
+
+constant @multiplication-table = (
+ (1, 2 ... *) Z, (2,4 ... *)
+ andthen .map: { |$_... * }\
+ andthen *.map: *.cache
+);
+
+sub multiplication-table ($k, $i=$k div 2+1, $j=$i) {
+ @multiplication-table
+ andthen .map: *.head($j)
+ andthen .head($i)
+ andthen .flat.sort
+ andthen .[$k-1]
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is multiplication-table(4),3;
+ is multiplication-table(4,2,3),3;
+ is multiplication-table(6,3,3),4;
+ is multiplication-table(150),39;
+ done-testing;
+}
+
+multi MAIN ($k, $i=$k div 2 + 1, $j=$i) {
+ say multiplication-table $k, $i, $j
+}