aboutsummaryrefslogtreecommitdiff
path: root/challenge-026
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2019-09-19 22:15:19 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2019-09-19 22:15:19 +0100
commita3ad943ec9c2ef6f7134b0e582f0e4ed043193f2 (patch)
tree3edad73ba68a93ea2694691b17fc2cf84ca3e4c5 /challenge-026
parentbdc5bd9bb85180ac2d60ece634db5a60dddc5b26 (diff)
downloadperlweeklychallenge-club-a3ad943ec9c2ef6f7134b0e582f0e4ed043193f2.tar.gz
perlweeklychallenge-club-a3ad943ec9c2ef6f7134b0e582f0e4ed043193f2.tar.bz2
perlweeklychallenge-club-a3ad943ec9c2ef6f7134b0e582f0e4ed043193f2.zip
- Added solutions by Arne Sommer.
Diffstat (limited to 'challenge-026')
-rw-r--r--challenge-026/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-026/arne-sommer/perl6/ch-1.p67
-rwxr-xr-xchallenge-026/arne-sommer/perl6/ch-2.p615
-rwxr-xr-xchallenge-026/arne-sommer/perl6/stringcounter-loop15
-rwxr-xr-xchallenge-026/arne-sommer/perl6/stringcounter-map8
-rwxr-xr-xchallenge-026/arne-sommer/perl6/stringcounter-map-oneliner6
-rwxr-xr-xchallenge-026/arne-sommer/perl6/stringcounter-subset7
7 files changed, 59 insertions, 0 deletions
diff --git a/challenge-026/arne-sommer/blog.txt b/challenge-026/arne-sommer/blog.txt
new file mode 100644
index 0000000000..dd665e7af0
--- /dev/null
+++ b/challenge-026/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://perl6.eu/string-angling.html
diff --git a/challenge-026/arne-sommer/perl6/ch-1.p6 b/challenge-026/arne-sommer/perl6/ch-1.p6
new file mode 100755
index 0000000000..ab31fa021c
--- /dev/null
+++ b/challenge-026/arne-sommer/perl6/ch-1.p6
@@ -0,0 +1,7 @@
+#! /usr/bin/env perl6
+
+subset AtoZ of Str where /^ <[A .. Z a .. z]>+ $/;
+
+unit sub MAIN (AtoZ $alphabet, AtoZ $string);
+
+say ($alphabet.comb.Set ⊍ $string.comb.Bag).Int;
diff --git a/challenge-026/arne-sommer/perl6/ch-2.p6 b/challenge-026/arne-sommer/perl6/ch-2.p6
new file mode 100755
index 0000000000..916424e518
--- /dev/null
+++ b/challenge-026/arne-sommer/perl6/ch-2.p6
@@ -0,0 +1,15 @@
+#! /usr/bin/env perl6
+
+unit sub MAIN (*@angles);
+
+my \n = @angles.elems;
+my @rad = @angles.map(* * pi / 180);
+my \s = @rad.map(*.sin).sum / n;
+my \c = @rad.map(*.cos).sum / n;
+my $mean = atan2( s / c ) * 180 / pi;
+
+if c < 0 { $mean += 180; }
+elsif s < 0 { $mean += 360; }
+
+say "mean: $mean";
+
diff --git a/challenge-026/arne-sommer/perl6/stringcounter-loop b/challenge-026/arne-sommer/perl6/stringcounter-loop
new file mode 100755
index 0000000000..67ffd13b47
--- /dev/null
+++ b/challenge-026/arne-sommer/perl6/stringcounter-loop
@@ -0,0 +1,15 @@
+#! /usr/bin/env perl6
+
+unit sub MAIN (Str $alphabet, Str $string, :$verbose);
+
+my $count = 0;
+
+for $alphabet.comb.unique -> $letter
+{
+ my $current = $string.comb.grep(* eq $letter).elems;
+ $count += $current;
+ say "$letter: $current" if $verbose;
+}
+
+say $count;
+
diff --git a/challenge-026/arne-sommer/perl6/stringcounter-map b/challenge-026/arne-sommer/perl6/stringcounter-map
new file mode 100755
index 0000000000..82b1280e79
--- /dev/null
+++ b/challenge-026/arne-sommer/perl6/stringcounter-map
@@ -0,0 +1,8 @@
+#! /usr/bin/env perl6
+
+unit sub MAIN (Str $alphabet, Str $string);
+
+say $alphabet.comb.unique.map( { $string.comb.grep(* eq $_ ) } ).sum;
+
+
+
diff --git a/challenge-026/arne-sommer/perl6/stringcounter-map-oneliner b/challenge-026/arne-sommer/perl6/stringcounter-map-oneliner
new file mode 100755
index 0000000000..a0e6945ef4
--- /dev/null
+++ b/challenge-026/arne-sommer/perl6/stringcounter-map-oneliner
@@ -0,0 +1,6 @@
+#! /usr/bin/env perl6
+
+say @*ARGS[0].comb.unique.map( { @*ARGS[1].comb.grep(* eq $_ ) } ).sum;
+
+
+
diff --git a/challenge-026/arne-sommer/perl6/stringcounter-subset b/challenge-026/arne-sommer/perl6/stringcounter-subset
new file mode 100755
index 0000000000..35d3000a56
--- /dev/null
+++ b/challenge-026/arne-sommer/perl6/stringcounter-subset
@@ -0,0 +1,7 @@
+#! /usr/bin/env perl6
+
+subset AtoZ of Str where /^ <[A .. Z a .. z]>+ $/;
+
+unit sub MAIN (AtoZ $alphabet, AtoZ $string);
+
+say $alphabet.comb.unique.map( { $string.comb.grep(* eq $_ ) } ).sum;