aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-280/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-280/arne-sommer/raku/ch-1.raku5
-rwxr-xr-xchallenge-280/arne-sommer/raku/ch-2.raku9
-rwxr-xr-xchallenge-280/arne-sommer/raku/count-asterisks9
-rwxr-xr-xchallenge-280/arne-sommer/raku/twice-appearance16
-rwxr-xr-xchallenge-280/arne-sommer/raku/twice-appearance-map5
6 files changed, 45 insertions, 0 deletions
diff --git a/challenge-280/arne-sommer/blog.txt b/challenge-280/arne-sommer/blog.txt
new file mode 100644
index 0000000000..53bd85e73a
--- /dev/null
+++ b/challenge-280/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/count-twice.html
diff --git a/challenge-280/arne-sommer/raku/ch-1.raku b/challenge-280/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..c1e7750720
--- /dev/null
+++ b/challenge-280/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,5 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str where $str ~~ /^<[a..z]>+$/);
+
+$str.comb.map({ state %seen; (say $_; last) if %seen{$_}++ });
diff --git a/challenge-280/arne-sommer/raku/ch-2.raku b/challenge-280/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..88f590d3c5
--- /dev/null
+++ b/challenge-280/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,9 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str, :v(:$verbose));
+
+my @parts = $str.split(/\|.*?\|/);
+
+say ": Parts: { @parts.raku }" if $verbose;
+
+@parts.join.comb.grep( * eq '*').elems.say; \ No newline at end of file
diff --git a/challenge-280/arne-sommer/raku/count-asterisks b/challenge-280/arne-sommer/raku/count-asterisks
new file mode 100755
index 0000000000..88f590d3c5
--- /dev/null
+++ b/challenge-280/arne-sommer/raku/count-asterisks
@@ -0,0 +1,9 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str, :v(:$verbose));
+
+my @parts = $str.split(/\|.*?\|/);
+
+say ": Parts: { @parts.raku }" if $verbose;
+
+@parts.join.comb.grep( * eq '*').elems.say; \ No newline at end of file
diff --git a/challenge-280/arne-sommer/raku/twice-appearance b/challenge-280/arne-sommer/raku/twice-appearance
new file mode 100755
index 0000000000..ff8df0340d
--- /dev/null
+++ b/challenge-280/arne-sommer/raku/twice-appearance
@@ -0,0 +1,16 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str where $str ~~ /^<[a..z]>+$/);
+
+my %seen;
+
+for $str.comb -> $letter
+{
+ if %seen{$letter}
+ {
+ say $letter;
+ last;
+ }
+
+ %seen{$letter} = True;
+} \ No newline at end of file
diff --git a/challenge-280/arne-sommer/raku/twice-appearance-map b/challenge-280/arne-sommer/raku/twice-appearance-map
new file mode 100755
index 0000000000..c1e7750720
--- /dev/null
+++ b/challenge-280/arne-sommer/raku/twice-appearance-map
@@ -0,0 +1,5 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str where $str ~~ /^<[a..z]>+$/);
+
+$str.comb.map({ state %seen; (say $_; last) if %seen{$_}++ });