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