[Issue 5544] New: all() and any() in Phobos
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Feb 7 14:37:58 PST 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5544
Summary: all() and any() in Phobos
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P2
Component: Phobos
AssignedTo: nobody at puremagic.com
ReportedBy: bearophile_hugs at eml.cc
--- Comment #0 from bearophile_hugs at eml.cc 2011-02-07 14:35:37 PST ---
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);
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list