Stream merge: Difference between revisions

Content added Content deleted
(Added Kotlin)
m (→‎{{header|Perl 6}}: don't assign, bind)
Line 1,363: Line 1,363:


=={{header|Perl 6}}==
=={{header|Perl 6}}==
{{works with|Rakudo|2018.02}}

<lang perl6>sub merge_streams ( @streams ) {
<lang perl6>sub merge_streams ( @streams ) {
my @s = @streams.map({ hash( STREAM => $_, HEAD => .get ) })\
my @s = @streams.map({ hash( STREAM => $_, HEAD => .get ) })\
Line 1,370: Line 1,372:
my $h = @s.min: *.<HEAD>;
my $h = @s.min: *.<HEAD>;
take $h<HEAD>;
take $h<HEAD>;
$h<HEAD> = $h<STREAM>.get
$h<HEAD> := $h<STREAM>.get
orelse @s .= grep( { $_ !=== $h } );
orelse @s .= grep( { $_ !=== $h } );
}
}