チャペルで条件付きのイテレータを書き込もうとしています。これは機能します
var x = [1,4,5,2,6,3];
iter dx(x) {
for y in x do yield 2*y;
}
for y in dx(x) {
writeln("y -> ", y);
}
戻る
y -> 2
y -> 8
y -> 10
y -> 4
y -> 12
y -> 6
3 より大きいものだけを返したいとします。これらはどれもコンパイルされません。適切な構文は何ですか?
var x = [1,4,5,2,6,3];
iter dx(x) {
//for y in x do {if x > 3} yield 2*y; // Barf
//for y in x do {if x > 3 yield 2*y }; // Barf
//for y in x do if x > 3 yield 2*y ; // Barf
}
for y in dx(x) {
writeln("y -> ", y);
}