digitalmars.D.bugs - [Issue 6043] New: Chainable template mixin
- d-bugmail puremagic.com (32/32) May 21 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6043
- d-bugmail puremagic.com (14/14) Jan 22 2013 http://d.puremagic.com/issues/show_bug.cgi?id=6043
http://d.puremagic.com/issues/show_bug.cgi?id=6043
Summary: Chainable template mixin
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P2
Component: Phobos
AssignedTo: nobody puremagic.com
ReportedBy: bearophile_hugs eml.cc
I suggest to add something like this to D2 Phobos (this is D1 code):
template Chainable() {
Chain!(typeof(this), Range) opCat(Range)(Range r) {
return chain(this, r);
}
}
Then in the body of a lazy range both Phobos ones like map, filter, zip, iota,
and so on, and user-defined ones, you may add:
mixin Chainable;
This allows to write more natural and readable code like:
iota(5) ~ filter!q{a}([1,0,3])
map!abs([1,2,-5]) ~ [10, 20]
instead of more noisy:
chain(iota(5), filter!q{a}([1,0,3]))
chain(map!abs([1,2,-5]), [10, 20])
See also bug 5638 for an useful optimization.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 21 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6043
Andrej Mitrovic <andrej.mitrovich gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |andrej.mitrovich gmail.com
18:18:20 PST ---
Very interesting idea!
In fact, it's a bit odd that we allow the generally slow array appends (due to
allocations, reallocations, etc), but we use functions for chaining ranges.
I wonder if Andrei would approve this. Maybe you should bring this up to the
newsgroups for better awareness.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 22 2013








d-bugmail puremagic.com