for (fn, n) = { stop = void (i) {} run = void (i) { fn(i); go(i + 1) } go = void (i) { *((i < n) * &run + (i >= n) * &stop)(i) } go(0) }