aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArne Sommer <arne@bbop.org>2025-07-18 22:51:35 +0200
committerArne Sommer <arne@bbop.org>2025-07-18 22:51:35 +0200
commit5db2af887d5c50bc400bab2e1d6d15d88ba6e0d7 (patch)
treee24ebaed748d7e5f58439d37813adc134e8fed62
parentc426fab2721595210e8e2ad3cef39a501b938e30 (diff)
downloadperlweeklychallenge-club-5db2af887d5c50bc400bab2e1d6d15d88ba6e0d7.tar.gz
perlweeklychallenge-club-5db2af887d5c50bc400bab2e1d6d15d88ba6e0d7.tar.bz2
perlweeklychallenge-club-5db2af887d5c50bc400bab2e1d6d15d88ba6e0d7.zip
week 330 Arne Sommer
-rw-r--r--challenge-330/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-330/arne-sommer/raku/ch-1.raku22
-rwxr-xr-xchallenge-330/arne-sommer/raku/ch-2.raku14
-rwxr-xr-xchallenge-330/arne-sommer/raku/clear-digits22
-rwxr-xr-xchallenge-330/arne-sommer/raku/title-capital14
5 files changed, 73 insertions, 0 deletions
diff --git a/challenge-330/arne-sommer/blog.txt b/challenge-330/arne-sommer/blog.txt
new file mode 100644
index 0000000000..edc217b149
--- /dev/null
+++ b/challenge-330/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/clearly-capital.html \ No newline at end of file
diff --git a/challenge-330/arne-sommer/raku/ch-1.raku b/challenge-330/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..462f51d87a
--- /dev/null
+++ b/challenge-330/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,22 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str where $str ~~ /^<[ a..z 0 .. 9 ]>+$/,
+ :v(:$verbose));
+
+my @output;
+
+for $str.comb -> $current
+{
+ if $current eq any(0..9)
+ {
+ @output.pop;
+ say ": Digit $current; Remove letter -> { @output.join}" if $verbose;
+ }
+ else
+ {
+ @output.push: $current;
+ say ": Letter $current; Added -> { @output.join}" if $verbose;
+ }
+}
+
+say @output.join; \ No newline at end of file
diff --git a/challenge-330/arne-sommer/raku/ch-2.raku b/challenge-330/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..358f7bc08c
--- /dev/null
+++ b/challenge-330/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,14 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str where $str.chars > 0,
+ :v(:$verbose));
+
+say $str.words.map( *.&tica ).join(" ");
+
+sub tica ($word)
+{
+ say ": Word: $word" if $verbose;
+
+ return $word.lc if $word.chars <= 2;
+ return $word.lc.tc;
+}
diff --git a/challenge-330/arne-sommer/raku/clear-digits b/challenge-330/arne-sommer/raku/clear-digits
new file mode 100755
index 0000000000..462f51d87a
--- /dev/null
+++ b/challenge-330/arne-sommer/raku/clear-digits
@@ -0,0 +1,22 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str where $str ~~ /^<[ a..z 0 .. 9 ]>+$/,
+ :v(:$verbose));
+
+my @output;
+
+for $str.comb -> $current
+{
+ if $current eq any(0..9)
+ {
+ @output.pop;
+ say ": Digit $current; Remove letter -> { @output.join}" if $verbose;
+ }
+ else
+ {
+ @output.push: $current;
+ say ": Letter $current; Added -> { @output.join}" if $verbose;
+ }
+}
+
+say @output.join; \ No newline at end of file
diff --git a/challenge-330/arne-sommer/raku/title-capital b/challenge-330/arne-sommer/raku/title-capital
new file mode 100755
index 0000000000..358f7bc08c
--- /dev/null
+++ b/challenge-330/arne-sommer/raku/title-capital
@@ -0,0 +1,14 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str where $str.chars > 0,
+ :v(:$verbose));
+
+say $str.words.map( *.&tica ).join(" ");
+
+sub tica ($word)
+{
+ say ": Word: $word" if $verbose;
+
+ return $word.lc if $word.chars <= 2;
+ return $word.lc.tc;
+}