aboutsummaryrefslogtreecommitdiff
path: root/challenge-050
diff options
context:
space:
mode:
authorMarkus "Holli" Holzer <holli.holzer@gmail.com>2020-03-02 22:17:22 +0100
committerMarkus "Holli" Holzer <holli.holzer@gmail.com>2020-03-02 22:17:22 +0100
commit8124d3d8cd88501e24286220ffdfc8eda30c1404 (patch)
treedfb503420556f5ac3241c8db886c8a699b52a1c1 /challenge-050
parent06746227c29f63dd3b5e58b260aa1fa919adc2e6 (diff)
downloadperlweeklychallenge-club-8124d3d8cd88501e24286220ffdfc8eda30c1404.tar.gz
perlweeklychallenge-club-8124d3d8cd88501e24286220ffdfc8eda30c1404.tar.bz2
perlweeklychallenge-club-8124d3d8cd88501e24286220ffdfc8eda30c1404.zip
small improvements
Diffstat (limited to 'challenge-050')
-rw-r--r--challenge-050/markus-holzer/raku/ch-1.p69
-rw-r--r--challenge-050/markus-holzer/raku/ch-2.p611
2 files changed, 12 insertions, 8 deletions
diff --git a/challenge-050/markus-holzer/raku/ch-1.p6 b/challenge-050/markus-holzer/raku/ch-1.p6
index 6904852340..1addb44f86 100644
--- a/challenge-050/markus-holzer/raku/ch-1.p6
+++ b/challenge-050/markus-holzer/raku/ch-1.p6
@@ -1,3 +1,8 @@
+sub merge-flat( *@values where @values.elems %% 2 )
+{
+ merge( |@values.batch(2) );
+}
+
sub merge( **@tupel )
{
my $current = @tupel.first;
@@ -17,4 +22,6 @@ sub merge( **@tupel )
}
}
-dd merge( [2, 7], [3, 9], [10, 12], [15, 19], [18, 22] ); \ No newline at end of file
+dd merge( [2, 7], [3, 9], [10, 12], [15, 19], [18, 22] );
+dd merge-flat( 2, 7, 6, 11, 10, 17, 15, 19, 18, 27 );
+dd merge( [1, 2], [3, 4], [5, 6] ); \ No newline at end of file
diff --git a/challenge-050/markus-holzer/raku/ch-2.p6 b/challenge-050/markus-holzer/raku/ch-2.p6
index 7919724abc..9fc3d71e46 100644
--- a/challenge-050/markus-holzer/raku/ch-2.p6
+++ b/challenge-050/markus-holzer/raku/ch-2.p6
@@ -1,15 +1,12 @@
sub noble( @n )
{
- my Int $n = ( @n = @n.sort ).elems;
-
- ( 0..^$n )
- .grep({
- @n[ $^i ] == $n - $^i - 1 })
- .map({
- @n[ $^i ] });
+ my $n = ( @n = @n.sort ).end;
+ my $i = ( 0..$n ).first({ @n[ $^i ] == $n - $^i });
+ try @n[ $i ]; # $i can be Nil
}
say noble( [2, 4, 0, 3] );
say noble( [1, 4, 5, 6, 7, 8] );
say noble( [2, 2, 0, 3] );
say noble( [-1, 0] );
+say noble( (1..60).roll(120).Array );