diff options
Diffstat (limited to 'challenge-050')
| -rw-r--r-- | challenge-050/markus-holzer/raku/ch-1.p6 | 20 | ||||
| -rw-r--r-- | challenge-050/markus-holzer/raku/ch-2.p6 | 15 |
2 files changed, 35 insertions, 0 deletions
diff --git a/challenge-050/markus-holzer/raku/ch-1.p6 b/challenge-050/markus-holzer/raku/ch-1.p6 new file mode 100644 index 0000000000..6904852340 --- /dev/null +++ b/challenge-050/markus-holzer/raku/ch-1.p6 @@ -0,0 +1,20 @@ +sub merge( **@tupel ) +{ + my $current = @tupel.first; + + gather + { + for @tupel[ 1..* ] -> $next + { + $current = [ $current[0], $next[1] ] and next + if $next[0] < $current[1]; + + take $current; + $current = $next; + } + + take $current; + } +} + +dd merge( [2, 7], [3, 9], [10, 12], [15, 19], [18, 22] );
\ 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 new file mode 100644 index 0000000000..ac883a7ae1 --- /dev/null +++ b/challenge-050/markus-holzer/raku/ch-2.p6 @@ -0,0 +1,15 @@ +sub noble( @n ) +{ + my Int $n = (@n = @n.sort).elems; + + ( 0..^$n ) + .grep({ + @n[ $^i ] == $n - $^i - 1 }) + .map({ + @n[ $^i ] }); +} + +say noble( [2, 4, 0, 3] ); +say noble( [1, 4, 5, 6, 7, 8] ); +say noble( [2, 2, 0, 3] ); +say noble( [-1, 0] ); |
