Does Rayon use iterators, or just iterator-like combinators? I don’t think a for-loop would work with Rayon, would it?
You can also definitely implement iterators using first-order functions:
const iterate = array => {
const step = index => ({
value: array[index],
next: () => step(index + 1)
});
return step(0);
}
// add some combinators on top
First order functions can in fact implement
anything if you’re willing to accept some bad syntax and speed — that’s the Church-Turing equivalence.