Stream merge: Difference between revisions

Content added Content deleted
(→‎{{header|Go}}: add fibonacci heap version)
(Added Sidef)
Line 1,341: Line 1,341:
30
30
</pre>
</pre>

=={{header|Sidef}}==
{{trans|Perl 6}}
<lang ruby>func merge_streams(streams) {
var s = streams.map { |stream|
Pair(stream, stream.readline)
}.grep {|p| defined(p.value) }

gather {
while (s) {
var p = s.min_by { .value }
take(p.value)
p.value = (p.key.readline \\ s.delete_if { _ == p })
}
}
}

say merge_streams(ARGV.map {|f| File(f).open_r }).join("\n")</lang>


=={{header|Tcl}}==
=={{header|Tcl}}==