aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-305/barroff/raku/ch-1.p625
1 files changed, 25 insertions, 0 deletions
diff --git a/challenge-305/barroff/raku/ch-1.p6 b/challenge-305/barroff/raku/ch-1.p6
new file mode 100644
index 0000000000..a4fc38c70d
--- /dev/null
+++ b/challenge-305/barroff/raku/ch-1.p6
@@ -0,0 +1,25 @@
+#!/usr/bin/env raku
+
+use v6.d;
+
+sub binary-prefix(@binary --> Seq) {
+ my Int $s = 0;
+ map({ $s = 2 * $s + $_; $s.is-prime; }, @binary);
+}
+
+#| Run test cases
+multi sub MAIN('test') {
+ use Test;
+ plan 3;
+
+ is binary-prefix([1, 0 , 1]), [False, True, True], 'works for [1, 0, 1]';
+ is binary-prefix([1, 1 , 0]), [False, True, False], 'works for [1, 1, 0]';
+ is binary-prefix([1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1]),
+ [False, True, True, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, True],
+ 'works for case 3';
+}
+
+#| Take user provided number like 1 0 1
+multi sub MAIN(*@binary where .all ~~ /^ (0|1) $/) {
+ say binary-prefix(@binary);
+}