aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-12-05 00:32:39 +0000
committerGitHub <noreply@github.com>2022-12-05 00:32:39 +0000
commit6f89d8e855baca62e738036bd56a07bea8912cb8 (patch)
tree1ed43d2654587d884325297c772add7af69659dd
parent397d55efd22090436cafc6896e00d0d58f7c270a (diff)
parent44428bdd90a3c5d780a33cdd8c506b8e219d2ba7 (diff)
downloadperlweeklychallenge-club-6f89d8e855baca62e738036bd56a07bea8912cb8.tar.gz
perlweeklychallenge-club-6f89d8e855baca62e738036bd56a07bea8912cb8.tar.bz2
perlweeklychallenge-club-6f89d8e855baca62e738036bd56a07bea8912cb8.zip
Merge pull request #7204 from arnesom/branch-for-challenge-193
Arne Sommer
-rw-r--r--challenge-193/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-193/arne-sommer/raku/binary-string-loop18
-rwxr-xr-xchallenge-193/arne-sommer/raku/binary-string-map5
-rwxr-xr-xchallenge-193/arne-sommer/raku/ch-1.raku5
-rwxr-xr-xchallenge-193/arne-sommer/raku/ch-2.raku27
-rwxr-xr-xchallenge-193/arne-sommer/raku/odd-string27
6 files changed, 83 insertions, 0 deletions
diff --git a/challenge-193/arne-sommer/blog.txt b/challenge-193/arne-sommer/blog.txt
new file mode 100644
index 0000000000..53f2294e2e
--- /dev/null
+++ b/challenge-193/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://raku-musings.com/abundance-strings.html
diff --git a/challenge-193/arne-sommer/raku/binary-string-loop b/challenge-193/arne-sommer/raku/binary-string-loop
new file mode 100755
index 0000000000..1eb4ad03f6
--- /dev/null
+++ b/challenge-193/arne-sommer/raku/binary-string-loop
@@ -0,0 +1,18 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $n where $n > 0);
+
+my $decimal = 0;
+
+my @binary;
+
+loop
+{
+ my $binary = $decimal.fmt('%0' ~ $n ~ 'b');
+ last if $binary.chars > $n;
+
+ @binary.push: $binary;
+ $decimal++;
+}
+
+say @binary.join(", "); \ No newline at end of file
diff --git a/challenge-193/arne-sommer/raku/binary-string-map b/challenge-193/arne-sommer/raku/binary-string-map
new file mode 100755
index 0000000000..b39910911d
--- /dev/null
+++ b/challenge-193/arne-sommer/raku/binary-string-map
@@ -0,0 +1,5 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $n where $n > 0);
+
+say (0 .. (1 x $n).parse-base(2)).map( *.fmt('%0' ~ $n ~ 'b') ).join(", ");
diff --git a/challenge-193/arne-sommer/raku/ch-1.raku b/challenge-193/arne-sommer/raku/ch-1.raku
new file mode 100755
index 0000000000..b39910911d
--- /dev/null
+++ b/challenge-193/arne-sommer/raku/ch-1.raku
@@ -0,0 +1,5 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (Int $n where $n > 0);
+
+say (0 .. (1 x $n).parse-base(2)).map( *.fmt('%0' ~ $n ~ 'b') ).join(", ");
diff --git a/challenge-193/arne-sommer/raku/ch-2.raku b/challenge-193/arne-sommer/raku/ch-2.raku
new file mode 100755
index 0000000000..f289c680ed
--- /dev/null
+++ b/challenge-193/arne-sommer/raku/ch-2.raku
@@ -0,0 +1,27 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@s where ( [==] @s>>.chars), :v(:$verbose));
+
+my %diff;
+
+for @s -> $string
+{
+ my @letters = $string.comb;
+ my @diff;
+ my $first;
+ my $second = @letters.shift;
+ while (@letters.elems) {
+ my $first = $second;
+ $second = @letters.shift;
+ my $diff = $second.ord - $first.ord;
+ @diff.push: $diff;
+ }
+
+ %diff{ @diff.join: " " }.push: $string;
+ say ": $string -> @diff[]" if $verbose;
+}
+
+say ":" ~ %diff.raku if $verbose;
+
+say %diff.grep({ $_.value.elems == 1 }).map( *.value ).Str;
+
diff --git a/challenge-193/arne-sommer/raku/odd-string b/challenge-193/arne-sommer/raku/odd-string
new file mode 100755
index 0000000000..f289c680ed
--- /dev/null
+++ b/challenge-193/arne-sommer/raku/odd-string
@@ -0,0 +1,27 @@
+#! /usr/bin/env raku
+
+unit sub MAIN (*@s where ( [==] @s>>.chars), :v(:$verbose));
+
+my %diff;
+
+for @s -> $string
+{
+ my @letters = $string.comb;
+ my @diff;
+ my $first;
+ my $second = @letters.shift;
+ while (@letters.elems) {
+ my $first = $second;
+ $second = @letters.shift;
+ my $diff = $second.ord - $first.ord;
+ @diff.push: $diff;
+ }
+
+ %diff{ @diff.join: " " }.push: $string;
+ say ": $string -> @diff[]" if $verbose;
+}
+
+say ":" ~ %diff.raku if $verbose;
+
+say %diff.grep({ $_.value.elems == 1 }).map( *.value ).Str;
+