diff options
| author | mimosinnet <mimosinnet@gmail.com> | 2021-07-04 11:27:44 +0200 |
|---|---|---|
| committer | mimosinnet <mimosinnet@gmail.com> | 2021-07-04 11:27:44 +0200 |
| commit | 05d525341fef575bf1d054553d73d27c48e418df (patch) | |
| tree | 6f388205da89d28970eb8aff30b9acb748041ff6 | |
| parent | 5d73680dd18c4cba87c1d16a24c93f8f8062e847 (diff) | |
| download | perlweeklychallenge-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.raku | 39 | ||||
| -rw-r--r-- | challenge-105/mimosinnet/raku/ch-2.raku | 56 |
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; + +} |
