aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-204/bruce-gray/raku/ch-1.raku11
-rw-r--r--challenge-204/bruce-gray/raku/ch-2.raku18
2 files changed, 29 insertions, 0 deletions
diff --git a/challenge-204/bruce-gray/raku/ch-1.raku b/challenge-204/bruce-gray/raku/ch-1.raku
new file mode 100644
index 0000000000..be330f8503
--- /dev/null
+++ b/challenge-204/bruce-gray/raku/ch-1.raku
@@ -0,0 +1,11 @@
+sub task1 ( @ns --> Bool ) { ([<=] @ns) || ([>=] @ns) }
+
+
+my @tests =
+ (1,2,2,3) => 1,
+ (1,3,2) => 0,
+ (6,5,5,4) => 1,
+;
+use Test;
+plan +@tests;
+is +task1(.key), .value for @tests;
diff --git a/challenge-204/bruce-gray/raku/ch-2.raku b/challenge-204/bruce-gray/raku/ch-2.raku
new file mode 100644
index 0000000000..aa8ee3dc80
--- /dev/null
+++ b/challenge-204/bruce-gray/raku/ch-2.raku
@@ -0,0 +1,18 @@
+sub task2 (@matrix, UInt $r, UInt $c) {
+ return @matrix.flat.elems == $r * $c
+ ?? @matrix.flat.batch($c)
+ !! 0;
+}
+
+
+my @tests =
+ ( 1, 4, ( ( 1, 2 ) , ( 3, 4 ) ) ) => ( ( 1, 2, 3, 4, ), ),
+ ( 3, 2, ( ( 1, 2, 3 ) , ( 4, 5, 6 ) ) ) => ( ( 1, 2 ), ( 3, 4 ), ( 5, 6 ) ),
+ ( 3, 2, ( ( 1, 2 ) , ) ) => 0 ,
+;
+use Test;
+plan +@tests;
+for @tests -> ( :key($in), :value($expected) ) {
+ my ( $r, $c, $matrix ) = $in.list;
+ is-deeply task2( $matrix, $r, $c ), $expected;
+}