From d6cdf3086d99b94882b09ed727a42ed3956484ef Mon Sep 17 00:00:00 2001 From: "Markus \"Holli\" Holzer" Date: Mon, 23 Mar 2020 18:55:16 +0100 Subject: boring solutions --- challenge-053/markus-holzer/raku/ch-1.p6 | 31 ++++++++++++++++++++++++++++++ challenge-053/markus-holzer/raku/ch-2.p6 | 33 ++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 challenge-053/markus-holzer/raku/ch-1.p6 create mode 100644 challenge-053/markus-holzer/raku/ch-2.p6 diff --git a/challenge-053/markus-holzer/raku/ch-1.p6 b/challenge-053/markus-holzer/raku/ch-1.p6 new file mode 100644 index 0000000000..4b8305ab24 --- /dev/null +++ b/challenge-053/markus-holzer/raku/ch-1.p6 @@ -0,0 +1,31 @@ +multi sub MAIN( Int:D $degrees where * ~~ 90|180|270|360 ) +{ + my @matrix[3,3] = (1..9).batch(3); + my $times = $degrees / 90; + + clockwise( @matrix ) for ^$times; + + dd @matrix; +} + +sub clockwise( @matrix ) +{ + my $n = @matrix.elems; + my $x = ($n / 2).floor; + my $y = $n - 1; + + for ^$x -> $i + { + for ^$y -> $j + { + my $dj = $y - $j; + my $di = $y - $i; + my $k = @matrix[$i;$j]; + + @matrix[ $i; $j ] = @matrix[ $dj; $i ]; + @matrix[ $dj; $i ] = @matrix[ $di; $dj ]; + @matrix[ $di; $dj ] = @matrix[ $j; $di ]; + @matrix[ $j; $di ] = $k; + } + } +}; \ No newline at end of file diff --git a/challenge-053/markus-holzer/raku/ch-2.p6 b/challenge-053/markus-holzer/raku/ch-2.p6 new file mode 100644 index 0000000000..344c61963c --- /dev/null +++ b/challenge-053/markus-holzer/raku/ch-2.p6 @@ -0,0 +1,33 @@ +my %rules = + :a({ $_ ~~ 'i'|'o' }), + :e({ $_ ~~ 'a'|'i'|'u' }), + :i({ $_ ~~ 'a'|'e' }), + :o({ $_ ~~ 'i'|'u' }), + :u({ $_ ~~ 'o'|'i' }) +; + +my @vowels = ; + +sub MAIN(Int $n) +{ + .say for gather { build-str( $n, $_ ) for @vowels } +} + +multi sub build-str( $n, $current ) +{ + my $last = $current.substr( * - 1, 1 ); + + for -> $vovel + { + next + unless %rules{ $vovel }( $last ); + + given $current ~ $vovel + { + take $_ and next + if .chars == $n; + + build-str( $n, $_ ); + } + } +} \ No newline at end of file -- cgit From 43d3f2d6f66fe46910b9b2068504a62d4726683f Mon Sep 17 00:00:00 2001 From: "Markus \"Holli\" Holzer" Date: Mon, 23 Mar 2020 19:01:36 +0100 Subject: boring solutions --- challenge-053/markus-holzer/raku/ch-1.p6 | 6 +++--- challenge-053/markus-holzer/raku/ch-2.p6 | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/challenge-053/markus-holzer/raku/ch-1.p6 b/challenge-053/markus-holzer/raku/ch-1.p6 index 4b8305ab24..47247f6c50 100644 --- a/challenge-053/markus-holzer/raku/ch-1.p6 +++ b/challenge-053/markus-holzer/raku/ch-1.p6 @@ -1,6 +1,6 @@ multi sub MAIN( Int:D $degrees where * ~~ 90|180|270|360 ) { - my @matrix[3,3] = (1..9).batch(3); + my @matrix[ 3, 3 ] = ( 1..9 ).batch( 3 ); my $times = $degrees / 90; clockwise( @matrix ) for ^$times; @@ -11,7 +11,7 @@ multi sub MAIN( Int:D $degrees where * ~~ 90|180|270|360 ) sub clockwise( @matrix ) { my $n = @matrix.elems; - my $x = ($n / 2).floor; + my $x = ( $n / 2 ).floor; my $y = $n - 1; for ^$x -> $i @@ -20,7 +20,7 @@ sub clockwise( @matrix ) { my $dj = $y - $j; my $di = $y - $i; - my $k = @matrix[$i;$j]; + my $k = @matrix[ $i; $j ]; @matrix[ $i; $j ] = @matrix[ $dj; $i ]; @matrix[ $dj; $i ] = @matrix[ $di; $dj ]; diff --git a/challenge-053/markus-holzer/raku/ch-2.p6 b/challenge-053/markus-holzer/raku/ch-2.p6 index 344c61963c..ff0d8689a6 100644 --- a/challenge-053/markus-holzer/raku/ch-2.p6 +++ b/challenge-053/markus-holzer/raku/ch-2.p6 @@ -17,12 +17,12 @@ multi sub build-str( $n, $current ) { my $last = $current.substr( * - 1, 1 ); - for -> $vovel + for @vowels { next - unless %rules{ $vovel }( $last ); + unless %rules{ $_ }( $last ); - given $current ~ $vovel + given $current ~ $_ { take $_ and next if .chars == $n; -- cgit From 59dfb47fb0716ff17bfc9889eb7f2e4dbf347d78 Mon Sep 17 00:00:00 2001 From: "Markus \"Holli\" Holzer" Date: Mon, 23 Mar 2020 19:09:18 +0100 Subject: whitespace --- challenge-053/markus-holzer/raku/ch-1.p6 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/challenge-053/markus-holzer/raku/ch-1.p6 b/challenge-053/markus-holzer/raku/ch-1.p6 index 47247f6c50..b9998bf735 100644 --- a/challenge-053/markus-holzer/raku/ch-1.p6 +++ b/challenge-053/markus-holzer/raku/ch-1.p6 @@ -1,7 +1,7 @@ multi sub MAIN( Int:D $degrees where * ~~ 90|180|270|360 ) { my @matrix[ 3, 3 ] = ( 1..9 ).batch( 3 ); - my $times = $degrees / 90; + my $times = $degrees / 90; clockwise( @matrix ) for ^$times; @@ -20,7 +20,7 @@ sub clockwise( @matrix ) { my $dj = $y - $j; my $di = $y - $i; - my $k = @matrix[ $i; $j ]; + my $k = @matrix[ $i; $j ]; @matrix[ $i; $j ] = @matrix[ $dj; $i ]; @matrix[ $dj; $i ] = @matrix[ $di; $dj ]; -- cgit