On Tuesday, 10 March 2015 at 22:11:57 UTC, Dennis Ritchie wrote:
On Tuesday, 10 March 2015 at 21:27:42 UTC, Dennis Ritchie wrote:
Thanks.
No, it does not suit me, because of the parallel array in a
foreach loop there is no break.
import std.stdio;
import std.algorithm;
import std.parallelism;
void main() {
int b = 2;
auto a = [1, 2, 2, 3];
if (find(a, b).length != 0)
writeln("Yes_");
foreach (elem; a.parallel)
if (elem == b)
writeln("Yes"); // prints "Yes" twice
}
Just add a condition variable.
import std.stdio;
import std.algorithm;
import std.parallelism;
void main() {
int b = 2;
auto a = [1, 2, 2, 3];
if (find(a, b).length != 0)
writeln("Yes_");
auto found = false;
foreach (elem; a.parallel)
if (!found && elem == b)
{
writeln("Yes");
found = true;
}
}
This program pints:
Yes_
Yes