aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorarnesom <arne@bbop.org>2024-08-04 22:27:55 +0200
committerarnesom <arne@bbop.org>2024-08-04 22:27:55 +0200
commit61e831603ccaff975c7658aacfa92ddd412ac2f9 (patch)
tree8806fef203aaeb3d65fe1d7fb9a16626864e3b95
parentccf77aa666bd57aa6b576643ce01a3fe9e0bb386 (diff)
downloadperlweeklychallenge-club-61e831603ccaff975c7658aacfa92ddd412ac2f9.tar.gz
perlweeklychallenge-club-61e831603ccaff975c7658aacfa92ddd412ac2f9.tar.bz2
perlweeklychallenge-club-61e831603ccaff975c7658aacfa92ddd412ac2f9.zip
Arne Sommer
-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{$_}++ });