aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorarnesom <arne@bbop.org>2023-03-09 22:13:52 +0100
committerarnesom <arne@bbop.org>2023-03-09 22:13:52 +0100
commit38f3b79c4be5a065fcf700da4a3200e2d45ce378 (patch)
tree4640d07e4dfd00468b65c439e1914e94666f5e39
parentf2e33c0038917ad43651d0c4e8b0bb310eaed541 (diff)
downloadperlweeklychallenge-club-38f3b79c4be5a065fcf700da4a3200e2d45ce378.tar.gz
perlweeklychallenge-club-38f3b79c4be5a065fcf700da4a3200e2d45ce378.tar.bz2
perlweeklychallenge-club-38f3b79c4be5a065fcf700da4a3200e2d45ce378.zip
Arne Sommer
-rw-r--r--challenge-207/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-207/arne-sommer/raku/ch-1.raku17
-rwxr-xr-xchallenge-207/arne-sommer/raku/ch-2.raku18
-rwxr-xr-xchallenge-207/arne-sommer/raku/h-index18
-rwxr-xr-xchallenge-207/arne-sommer/raku/keyboard-word17
5 files changed, 71 insertions, 0 deletions
diff --git a/challenge-207/arne-sommer/blog.txt b/challenge-207/arne-sommer/blog.txt
new file mode 100644
index 0000000000..897695eb40
--- /dev/null
+++ b/challenge-207/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/h-word.html
diff --git a/challenge-207/arne-sommer/raku/ch-1.raku b/challenge-207/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..181cd47446
--- /dev/null
+++ b/challenge-207/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,17 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($words = "Hello Alaska Dad Peace", :v($verbose));
+
+my $row1 = /^ <[qwertyuiop]>+ $/;
+my $row2 = /^ <[asdfghjkl]>+ $/;
+my $row3 = /^ <[zxcvbnm]>+ $/;
+
+my @ok;
+
+for $words.words -> $word
+{
+ say ":word: $word" if $verbose;
+ @ok.push($word) if $word.lc ~~ / $row1 | $row2 | $row3 /;
+}
+
+say "(", @ok.map({ '"' ~ $_ ~ '"' }).join(","), ")";
diff --git a/challenge-207/arne-sommer/raku/ch-2.raku b/challenge-207/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..59000e1752
--- /dev/null
+++ b/challenge-207/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,18 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@citations where @citations.elems && all(@citations) ~~ /^ 0 || <[1..9]> <[0..9]>* $/, :v($verbose));
+
+my @sorted = @citations.sort;
+
+say ": Sorted: { @citations.join(", ") }" if $verbose;
+
+for @citations.elems ... 1 -> $index
+{
+ say "Pos:$index -> val:{ @citations[$index -1] }" if $verbose;
+ if @citations[$index -1] >= $index
+ {
+ say $index;
+ last;
+ }
+}
+
diff --git a/challenge-207/arne-sommer/raku/h-index b/challenge-207/arne-sommer/raku/h-index
new file mode 100755
index 0000000000..59000e1752
--- /dev/null
+++ b/challenge-207/arne-sommer/raku/h-index
@@ -0,0 +1,18 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@citations where @citations.elems && all(@citations) ~~ /^ 0 || <[1..9]> <[0..9]>* $/, :v($verbose));
+
+my @sorted = @citations.sort;
+
+say ": Sorted: { @citations.join(", ") }" if $verbose;
+
+for @citations.elems ... 1 -> $index
+{
+ say "Pos:$index -> val:{ @citations[$index -1] }" if $verbose;
+ if @citations[$index -1] >= $index
+ {
+ say $index;
+ last;
+ }
+}
+
diff --git a/challenge-207/arne-sommer/raku/keyboard-word b/challenge-207/arne-sommer/raku/keyboard-word
new file mode 100755
index 0000000000..181cd47446
--- /dev/null
+++ b/challenge-207/arne-sommer/raku/keyboard-word
@@ -0,0 +1,17 @@
+#! /usr/bin/env raku
+
+unit sub MAIN ($words = "Hello Alaska Dad Peace", :v($verbose));
+
+my $row1 = /^ <[qwertyuiop]>+ $/;
+my $row2 = /^ <[asdfghjkl]>+ $/;
+my $row3 = /^ <[zxcvbnm]>+ $/;
+
+my @ok;
+
+for $words.words -> $word
+{
+ say ":word: $word" if $verbose;
+ @ok.push($word) if $word.lc ~~ / $row1 | $row2 | $row3 /;
+}
+
+say "(", @ok.map({ '"' ~ $_ ~ '"' }).join(","), ")";