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