Problem with map, reduce, ..

Adrian Matoga via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jun 24 02:35:33 PDT 2015


On Wednesday, 24 June 2015 at 08:58:10 UTC, Stefan wrote:
> On Wednesday, 24 June 2015 at 08:33:29 UTC, Adrian Matoga wrote:
>> On Wednesday, 24 June 2015 at 08:30:29 UTC, Adrian Matoga 
>> wrote:
>>> input.byLine() yields char[]'s as range elements, while props 
>>> is (correctly) indexed by strings, i.e. immutable(char)[].
>>
>> Ooops, more precisely it's because of the second argument of 
>> add() being string, but the solution above still applies.
>
> Thanks! That does it!
>
> Any idea how to make the 'ugly' reduce step more 'pleasant'? 
> I.e. make it a part of the filter, map, .. chain?

What about:

    auto result = File(test.ini", "r")
       .byLine()
       .filter!( line => !startsWith( line, "#" ) && !startsWith( 
line, "!") && line.length > 0 )
       .map!( line => line.idup.split('='))
       .filter!( fields => fields.length > 1)
       .map!( fields => tuple(fields[0].strip(), fields[1].strip() 
))
       .assocArray();




More information about the Digitalmars-d-learn mailing list