Comment #0 by bearophile_hugs — 2011-02-07T14:35:37Z
This is Python 2.6.6 code (shell):
>>> items = [1, 7, 22]
>>> all(x % 2 for x in items)
False
>>> items = [1, 7, 21]
>>> all(x % 2 for x in items)
True
The functions all() and any() are very handy.
With Phobos of DMD 2.051 if you want to translate that Python code to a D2 functional style you need something like:
import std.algorithm;
void main() {
auto items = [1, 7, 22];
bool r1 = reduce!q{a && b}(true, map!q{a % 2}(items));
assert(!r1);
items = [1, 7, 21];
bool r2 = reduce!q{a && b}(true, map!q{a % 2}(items));
assert(r2);
}
While using an all() it becomes shorter and more readable, something like (untested):
import std.algorithm;
void main() {
auto items = [1, 7, 22];
bool r1 = all!q{a % 2}(items);
assert(!r1);
items = [1, 7, 21];
bool r2 = all!q{a % 2}(items);
assert(r2);
}
Comment #1 by issues.dlang — 2011-02-07T14:51:11Z
Bug#4405
Comment #2 by bearophile_hugs — 2011-02-07T15:08:53Z
Thank you for letting me know.
*** This issue has been marked as a duplicate of issue 4405 ***