Bug 5544 – all() and any() in Phobos

Status
RESOLVED
Resolution
DUPLICATE
Severity
enhancement
Priority
P2
Component
phobos
Product
D
Version
D2
Platform
All
OS
All
Creation time
2011-02-07T14:35:00Z
Last change time
2011-02-07T15:08:53Z
Assigned to
nobody
Creator
bearophile_hugs

Comments

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 ***