http://d.puremagic.com/issues/show_bug.cgi?id=5075

           Summary: std.algorithm.map/filter don't support associative
                    arrays or their byKey()/byValue()
           Product: D
           Version: D2
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: Phobos
        AssignedTo: nob...@puremagic.com
        ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2010-10-18 19:04:16 PDT ---
This is a small interactive REPL with Python 2.6:


>>> data = {1:4, 2:3, 3:1, 4:0}
>>> map(lambda x: -x, data)
[-1, -2, -3, -4]
>>> filter(lambda x: x > 2, data)
[3, 4]
>>> # works with lazy map and lazy filter too:
>>> from itertools import imap, ifilter
>>> list(imap(lambda x: -x, data))
[-1, -2, -3, -4]
>>> list(ifilter(lambda x: x > 2, data))
[3, 4]


'data' is an associative array, and "lambda" is used to define local anonymous
functions.

But map and filter in current Phobos with DMD 2.049 don't seem to support
associative arrays as inputs:


import std.algorithm: map, filter;
void main() {
    int[int] data = [1:4, 2:3, 3:1, 4:0];
    auto r1 = map!((int x) { return -x; })(data);
    auto r2 = filter!((int x) { return x > 2; })(data);
}


Nor byKey()/byValue():

import std.algorithm: map, filter;
void main() {
    int[int] data = [1:4, 2:3, 3:1, 4:0];
    auto r1 = map!((int x) { return -x; })(data.byKey());
    auto r2 = filter!((int x) { return x > 2; })(data.byKey());
    auto r3 = map!((int x) { return -x; })(data.byValue());
    auto r4 = filter!((int x) { return x > 2; })(data.byValue());    
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

Reply via email to