On Tuesday, July 10, 2012 15:21:14 Christophe Travert wrote: > "Simen Kjaeraas" , dans le message (digitalmars.D:171678), a écrit : > >> Well, I haven't been able to use a single function from std.algorithm > >> without adding a lot of calls to "array" or "to!(string)". I think the > >> things I'm trying to do seems trivial and quite common. I'm I overrating > >> std.algorithm or does it not fit my needs? > > > > bearophile (who else? :p) has suggested the addition of eager and in-place > > versions of some ranges, and I think he has a very good point. > > That would have been useful before UFSC. > Now, writing .array() at the end of an algorithm call is not a pain. > > int[] = [1, 2, 2, 3].uniq().map!toString().array();
It's not like auto result = array(map!"to!string(a)"(uniq([1, 2, 2, 3]))); is a pain either. It's just ordered differently. But regardless, it's easy to get an eager result by calling array on a lazy range, so there's no point in adding eager versions. They'd just be duplicating code for no real benefit. Not to mention, if anyone having to call array on ranges all of the time, you should probably rethink how they're using ranges. It's definitely necessary some of the time, but most of the time, you can just operate on the lazy ranges and save yourself unnecessary allocations. - Jonathan M Davis