aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormimosinnet <mimosinnet@gmail.com>2021-07-04 11:27:44 +0200
committermimosinnet <mimosinnet@gmail.com>2021-07-04 11:27:44 +0200
commit05d525341fef575bf1d054553d73d27c48e418df (patch)
tree6f388205da89d28970eb8aff30b9acb748041ff6
parent5d73680dd18c4cba87c1d16a24c93f8f8062e847 (diff)
downloadperlweeklychallenge-club-05d525341fef575bf1d054553d73d27c48e418df.tar.gz
perlweeklychallenge-club-05d525341fef575bf1d054553d73d27c48e418df.tar.bz2
perlweeklychallenge-club-05d525341fef575bf1d054553d73d27c48e418df.zip
Solutions for challenge 105
-rw-r--r--challenge-105/mimosinnet/raku/ch-1.raku39
-rw-r--r--challenge-105/mimosinnet/raku/ch-2.raku56
2 files changed, 95 insertions, 0 deletions
diff --git a/challenge-105/mimosinnet/raku/ch-1.raku b/challenge-105/mimosinnet/raku/ch-1.raku
new file mode 100644
index 0000000000..8217e51f6b
--- /dev/null
+++ b/challenge-105/mimosinnet/raku/ch-1.raku
@@ -0,0 +1,39 @@
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-105/
+# TASK #1 › Nth root
+
+
+sub challenge( $n, $k ) {
+ return (sprintf '%.2f', $k ** ( 1 / $n)).Num;
+}
+
+multi sub MAIN( $n, $k ) {
+ say 'Input: $N = ',$n,' $k = ',$k;
+ say 'Output: ',challenge($n, $k),"\n";
+}
+
+multi sub MAIN( 'challenge' ) {
+ my @challenge = (
+ (5, 248832),
+ (5, 34)
+ );
+
+ for @challenge -> ($a, $b) {
+ MAIN($a,$b);
+ }
+}
+
+multi sub MAIN( 'test' ) is hidden-from-USAGE {
+ use Test;
+
+ my @test = (
+ (5, 248832, 12),
+ (5, 34, 2.02)
+ );
+
+ for @test -> ($a, $b, $c ) {
+ is challenge($a,$b), $c;
+ }
+
+ done-testing;
+
+}
diff --git a/challenge-105/mimosinnet/raku/ch-2.raku b/challenge-105/mimosinnet/raku/ch-2.raku
new file mode 100644
index 0000000000..343a962fc1
--- /dev/null
+++ b/challenge-105/mimosinnet/raku/ch-2.raku
@@ -0,0 +1,56 @@
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-105
+# TASK #2 › The Name Game
+
+sub challenge( Str $name ) {
+
+ my $bname = 'b' ~ $name.substr(1);
+ my $fname = 'f' ~ $name.substr(1);
+ my $mname = 'm' ~ $name.substr(1);
+
+ given $name.split("",:skip-empty).head {
+ when 'B' { $bname = $name.substr(1) }
+ when 'F' { $fname = $name.substr(1) }
+ when 'M' { $mname = $name.substr(1) }
+ }
+
+ qq:to/END/;
+ $name, $name, bo-$bname,
+ Bonana-fanna fo-$fname
+ Fee fi mo-$mname
+ $name!
+ END
+
+}
+
+multi sub MAIN( Str $name ) {
+ say 'Input: $name = "',$name,'"';
+ say "Output: \n";
+ say challenge($name);
+}
+
+multi sub MAIN( 'challenge' ) {
+ MAIN('Katie');
+}
+
+multi sub MAIN( 't' ) {
+ challenge('Fred').say;
+}
+
+multi sub MAIN( 'test' ) is hidden-from-USAGE {
+ use Test;
+
+ my @test = (
+ ('Katie', "Katie, Katie, bo-batie,\nBonana-fanna fo-fatie\nFee fi mo-matie\nKatie!\n"),
+ ('Valerie', "Valerie, Valerie, bo-balerie,\nBonana-fanna fo-falerie\nFee fi mo-malerie\nValerie!\n"),
+ ('Billy', "Billy, Billy, bo-illy,\nBonana-fanna fo-filly\nFee fi mo-milly\nBilly!\n"),
+ ('Fred', "Fred, Fred, bo-bred,\nBonana-fanna fo-red\nFee fi mo-mred\nFred!\n"),
+ ('Marsha', "Marsha, Marsha, bo-barsha,\nBonana-fanna fo-farsha\nFee fi mo-arsha\nMarsha!\n")
+ );
+
+ for @test -> ($a, $b) {
+ is challenge($a), $b;
+ }
+
+ done-testing;
+
+}