diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-09-19 22:15:19 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-09-19 22:15:19 +0100 |
| commit | a3ad943ec9c2ef6f7134b0e582f0e4ed043193f2 (patch) | |
| tree | 3edad73ba68a93ea2694691b17fc2cf84ca3e4c5 /challenge-026 | |
| parent | bdc5bd9bb85180ac2d60ece634db5a60dddc5b26 (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rwxr-xr-x | challenge-026/arne-sommer/perl6/ch-1.p6 | 7 | ||||
| -rwxr-xr-x | challenge-026/arne-sommer/perl6/ch-2.p6 | 15 | ||||
| -rwxr-xr-x | challenge-026/arne-sommer/perl6/stringcounter-loop | 15 | ||||
| -rwxr-xr-x | challenge-026/arne-sommer/perl6/stringcounter-map | 8 | ||||
| -rwxr-xr-x | challenge-026/arne-sommer/perl6/stringcounter-map-oneliner | 6 | ||||
| -rwxr-xr-x | challenge-026/arne-sommer/perl6/stringcounter-subset | 7 |
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; |
