aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorarnesom <arne@bbop.org>2024-07-20 18:39:03 +0200
committerarnesom <arne@bbop.org>2024-07-20 18:39:03 +0200
commit37d2de9e0fc6e71aea0d33e1f229a1f2eaf89e5e (patch)
treefc44bb523010f5f87654e01aeb2d2c03245488ae
parenta52e7b2fadab591b0d022a3b5b8f25fcb8171878 (diff)
downloadperlweeklychallenge-club-37d2de9e0fc6e71aea0d33e1f229a1f2eaf89e5e.tar.gz
perlweeklychallenge-club-37d2de9e0fc6e71aea0d33e1f229a1f2eaf89e5e.tar.bz2
perlweeklychallenge-club-37d2de9e0fc6e71aea0d33e1f229a1f2eaf89e5e.zip
Arne Sommer
-rw-r--r--challenge-278/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-278/arne-sommer/raku/ch-1.raku19
-rwxr-xr-xchallenge-278/arne-sommer/raku/ch-2.raku7
-rwxr-xr-xchallenge-278/arne-sommer/raku/reverse-word7
-rwxr-xr-xchallenge-278/arne-sommer/raku/sort-string19
5 files changed, 53 insertions, 0 deletions
diff --git a/challenge-278/arne-sommer/blog.txt b/challenge-278/arne-sommer/blog.txt
new file mode 100644
index 0000000000..7a0547691e
--- /dev/null
+++ b/challenge-278/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/sort-of-reverse.html
diff --git a/challenge-278/arne-sommer/raku/ch-1.raku b/challenge-278/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..1eda4c5f60
--- /dev/null
+++ b/challenge-278/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,19 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str, :v(:$verbose));
+
+my @new;
+
+for $str.words -> $shuffle
+{
+ $shuffle ~~ /(.*?)(\d+)$/;
+ my $word = $0;
+ my $index = $1;
+
+ say ":Word '$word' at index $index { @new[$index].defined ?? 'REDEFINED' !! ''}" if $verbose;
+
+ @new[$index] = $word;
+}
+
+say @new[1 .. *].join(" ");
+# say @new.grep( *.defined ).join(" ");
diff --git a/challenge-278/arne-sommer/raku/ch-2.raku b/challenge-278/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..a3a628d92d
--- /dev/null
+++ b/challenge-278/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,7 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($word is copy, $char where $char.chars == 1);
+
+$word = $0.comb.sort.join ~ $1 if $word ~~ /(.*? $char) (.*)/;
+
+say $word;
diff --git a/challenge-278/arne-sommer/raku/reverse-word b/challenge-278/arne-sommer/raku/reverse-word
new file mode 100755
index 0000000000..a3a628d92d
--- /dev/null
+++ b/challenge-278/arne-sommer/raku/reverse-word
@@ -0,0 +1,7 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($word is copy, $char where $char.chars == 1);
+
+$word = $0.comb.sort.join ~ $1 if $word ~~ /(.*? $char) (.*)/;
+
+say $word;
diff --git a/challenge-278/arne-sommer/raku/sort-string b/challenge-278/arne-sommer/raku/sort-string
new file mode 100755
index 0000000000..1eda4c5f60
--- /dev/null
+++ b/challenge-278/arne-sommer/raku/sort-string
@@ -0,0 +1,19 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($str, :v(:$verbose));
+
+my @new;
+
+for $str.words -> $shuffle
+{
+ $shuffle ~~ /(.*?)(\d+)$/;
+ my $word = $0;
+ my $index = $1;
+
+ say ":Word '$word' at index $index { @new[$index].defined ?? 'REDEFINED' !! ''}" if $verbose;
+
+ @new[$index] = $word;
+}
+
+say @new[1 .. *].join(" ");
+# say @new.grep( *.defined ).join(" ");