aboutsummaryrefslogtreecommitdiff
path: root/challenge-113
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2021-05-22 19:17:15 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2021-05-22 19:17:15 +0200
commit011798762535cc369d27d929d9e9653994a12f3c (patch)
tree635c9a1a3d92ad148ba0c939e46be1c6e1fabdd9 /challenge-113
parent1720995a5127b6d99fad5334b6ba8983c06693b2 (diff)
downloadperlweeklychallenge-club-011798762535cc369d27d929d9e9653994a12f3c.tar.gz
perlweeklychallenge-club-011798762535cc369d27d929d9e9653994a12f3c.tar.bz2
perlweeklychallenge-club-011798762535cc369d27d929d9e9653994a12f3c.zip
solutions week 113
Diffstat (limited to 'challenge-113')
-rw-r--r--challenge-113/wambash/raku/ch-1.raku19
-rw-r--r--challenge-113/wambash/raku/ch-2.raku17
2 files changed, 36 insertions, 0 deletions
diff --git a/challenge-113/wambash/raku/ch-1.raku b/challenge-113/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..d90f0e3900
--- /dev/null
+++ b/challenge-113/wambash/raku/ch-1.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/env raku
+
+sub represent-integer ( $n, $d ) {
+ 1 .. $n
+ andthen .grep: *.comb.any == $d
+ andthen .sum
+ andthen $_ == $n
+}
+
+multi MAIN ( $n, $d ) {
+ say represent-integer $n, $d
+}
+
+multi MAIN ( :test($)! ) {
+ use Test;
+ is represent-integer( 25, 7 ), False;
+ is represent-integer( 24, 7 ), True;
+ done-testing;
+}
diff --git a/challenge-113/wambash/raku/ch-2.raku b/challenge-113/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..3ef6975113
--- /dev/null
+++ b/challenge-113/wambash/raku/ch-2.raku
@@ -0,0 +1,17 @@
+#!/usr/bin/env raku
+
+sub recreate-binary-tree ($tree) {
+ my $tree-sum = sum gather $tree.duckmap: -> Numeric:D $n { $n.take } ;
+ $tree.duckmap: -> Numeric:D $n { $tree-sum - $n }
+}
+
+
+multi MAIN ( :test($)! ) {
+ use Test;
+
+ my $tree = ( 1,( 2,( 4,Nil, 7),( 3, 5, 6)));
+ my $recreate-tree = (27,(26,(24,Nil,21),(25,23,22)));
+
+ is-deeply recreate-binary-tree($tree), $recreate-tree;
+ done-testing;
+}