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}}== |