a lot of range methods, such as filter
, any
, all
, count
, each
, etc. would be useful on associative arrays, taking in key and value, returning a processed .byKeyValue range.
I would suggest, at least for phobos v2, we should have these functions automatically call .byKeyValue
on maps and there should be support for lambdas with 2 arguments there, which automatically unwrap key and value (and possibly all tuples actually)
What do you think?
map.each!((key, value) { /* like a foreach, but functional style */ });
bool hasId = map.any!((key, value) => key == "id" && value !is null);
for this I think the implementation would basically boil down to:
- implicitly call
.byKeyValue
in the map-accepting range methods - allow tuples and the KeyValue pair to be extended into multiple parameters on CT lambdas that have multiple arguments
Users wanting to only use keys or only values can still use .byKey or .byValue.