[Issue 9611] New: std.algorithm.nWayUnion(Tuple) too?
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Feb 27 15:12:45 PST 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9611
Summary: std.algorithm.nWayUnion(Tuple) too?
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P2
Component: Phobos
AssignedTo: nobody at puremagic.com
ReportedBy: bearophile_hugs at eml.cc
--- Comment #0 from bearophile_hugs at eml.cc 2013-02-27 15:12:43 PST ---
In some cases I have had to merge ranges of different type. So maybe for such
situations it's worth supporting nWayUnion of a Tuple of ranges:
import std.algorithm: nWayUnion, map;
import std.range: iota;
import std.typecons: tuple;
void main() {
auto a = iota(10);
auto b = [3, 6, 9];
auto c = iota(11).map!q{a * a};
auto r = nWayUnion(tuple(a, b, c));
}
Note: in all such of my usage cases the number of the ranges was limited, 2 or
3. So when the input of nWayUnion is a tuple I think there is no need for
nWayUnion to keep the ranges inside with a BinaryHeap.
- - - - - - - - - - - - - -
Current workaround, suggested by Ali Çehreli:
import std.algorithm: nWayUnion, map;
import std.range: iota, InputRange, inputRangeObject;
void main() {
InputRange!int a = inputRangeObject(iota(10));
InputRange!int b = inputRangeObject([3, 6, 9]);
InputRange!int c = inputRangeObject(iota(11).map!q{a * a});
auto r = nWayUnion([a, b, c]);
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list