aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-08-21 00:15:20 +0100
committerGitHub <noreply@github.com>2024-08-21 00:15:20 +0100
commitf867370a8caddeda9a4ddf42bb01ebd4758c8c91 (patch)
tree2e4a1845b8df2d28714b6a49712eefa468d0e1d7
parentf9ccc7e49e7cf61ab9159d49ba4d4f8249cda78e (diff)
parent7fac2658cfe98fbfec9cf6c58c1f519911f2b3a1 (diff)
downloadperlweeklychallenge-club-f867370a8caddeda9a4ddf42bb01ebd4758c8c91.tar.gz
perlweeklychallenge-club-f867370a8caddeda9a4ddf42bb01ebd4758c8c91.tar.bz2
perlweeklychallenge-club-f867370a8caddeda9a4ddf42bb01ebd4758c8c91.zip
Merge pull request #10674 from arnesom/branch-for-challenge-283
Arne Sommer
-rw-r--r--challenge-283/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-283/arne-sommer/raku/ch-1.raku10
-rwxr-xr-xchallenge-283/arne-sommer/raku/ch-2.raku27
-rwxr-xr-xchallenge-283/arne-sommer/raku/digit-count-value27
-rwxr-xr-xchallenge-283/arne-sommer/raku/unique.number10
5 files changed, 75 insertions, 0 deletions
diff --git a/challenge-283/arne-sommer/blog.txt b/challenge-283/arne-sommer/blog.txt
new file mode 100644
index 0000000000..ed6de85091
--- /dev/null
+++ b/challenge-283/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/numbers-values.html
diff --git a/challenge-283/arne-sommer/raku/ch-1.raku b/challenge-283/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..371dd3e09a
--- /dev/null
+++ b/challenge-283/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,10 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where all(@ints) ~~ Int && @ints.elems > 0,
+ :v(:$verbose));
+
+my $bag = @ints>>.Int.Bag;
+
+say ": Bag { $bag.rakuĀ }" if $verbose;
+
+say $bag.grep(*.value == 1)>>.key.sort.join(",");
diff --git a/challenge-283/arne-sommer/raku/ch-2.raku b/challenge-283/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..56c563b0f4
--- /dev/null
+++ b/challenge-283/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,27 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where all(@ints) ~~ UInt && @ints.elems > 0,
+ :a(:$all),
+ :v(:$verbose) = $all);
+
+my $bag = @ints>>.Int.Bag;
+my $status = True;
+
+say ": Bag: { $bag.raku }" if $verbose;
+
+for ^@ints.elems -> $index
+{
+ my $val = @ints[$index];
+ my $count = $bag{$index};
+
+ my $is-ok = $val == $count;
+ say ": \@ints[{ $index }] = { $val }, the digit { $index } occurs { $count } time(s) | { $is-ok ?? "OK" !! "Not OK" }" if $verbose;
+
+ unless $is-ok
+ {
+ $status = False;
+ last unless $all;
+ }
+}
+
+say $status;
diff --git a/challenge-283/arne-sommer/raku/digit-count-value b/challenge-283/arne-sommer/raku/digit-count-value
new file mode 100755
index 0000000000..56c563b0f4
--- /dev/null
+++ b/challenge-283/arne-sommer/raku/digit-count-value
@@ -0,0 +1,27 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where all(@ints) ~~ UInt && @ints.elems > 0,
+ :a(:$all),
+ :v(:$verbose) = $all);
+
+my $bag = @ints>>.Int.Bag;
+my $status = True;
+
+say ": Bag: { $bag.raku }" if $verbose;
+
+for ^@ints.elems -> $index
+{
+ my $val = @ints[$index];
+ my $count = $bag{$index};
+
+ my $is-ok = $val == $count;
+ say ": \@ints[{ $index }] = { $val }, the digit { $index } occurs { $count } time(s) | { $is-ok ?? "OK" !! "Not OK" }" if $verbose;
+
+ unless $is-ok
+ {
+ $status = False;
+ last unless $all;
+ }
+}
+
+say $status;
diff --git a/challenge-283/arne-sommer/raku/unique.number b/challenge-283/arne-sommer/raku/unique.number
new file mode 100755
index 0000000000..371dd3e09a
--- /dev/null
+++ b/challenge-283/arne-sommer/raku/unique.number
@@ -0,0 +1,10 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@ints where all(@ints) ~~ Int && @ints.elems > 0,
+ :v(:$verbose));
+
+my $bag = @ints>>.Int.Bag;
+
+say ": Bag { $bag.rakuĀ }" if $verbose;
+
+say $bag.grep(*.value == 1)>>.key.sort.join(",");