aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-074/wambash/raku/ch-1.raku14
-rw-r--r--challenge-074/wambash/raku/ch-2.raku17
2 files changed, 31 insertions, 0 deletions
diff --git a/challenge-074/wambash/raku/ch-1.raku b/challenge-074/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..4b4a1ec2a2
--- /dev/null
+++ b/challenge-074/wambash/raku/ch-1.raku
@@ -0,0 +1,14 @@
+use v6;
+
+sub majority-element (+@a) {
+ @a.Bag
+ andthen \(total => .total, max-element => .max: *.value)
+ andthen .<total> - .<max-element>.value < .<max-element>.value ?? .<max-element>.key !! -1
+}
+
+sub MAIN (:$test) {
+ use Test;
+ is majority-element(1, 2, 2, 3, 2, 4, 2), 2;
+ is majority-element(1, 3, 1, 2, 4, 5), -1;
+ done-testing();
+}
diff --git a/challenge-074/wambash/raku/ch-2.raku b/challenge-074/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..55fc320f00
--- /dev/null
+++ b/challenge-074/wambash/raku/ch-2.raku
@@ -0,0 +1,17 @@
+use v6;
+
+sub infix:<FNR> (+@a) is assoc<list> {
+ @a.first: * ∉ @a.repeated, :end orelse '#'
+}
+
+sub FNR-charakter ( $s ) {
+ [~] [\FNR] $s.comb
+}
+
+sub MAIN ( :$test ) {
+ use Test;
+ is 'a' FNR 'b' FNR 'c' FNR 'a', 'c';
+ is FNR-charakter('ababc'), ‘abb#c’;
+ is FNR-charakter('xyzzyx'), ‘xyzyx#’;
+ done-testing();
+}