Experiment with generators, yield and cycling
by Arnaud Buchholz
JavaScript
function * values () {
}
function * loopOnIterator (iterator) {
while (true) {
const { value, done } = iterator.next()
console.log(value)
if (done) {
break
} else {
yield
}
}
}
function * eval (iterator) {
yield * loopOnIterator(iterator)
}
function cycle (iterator) {
if (iterator !== undefined) {
let count = 0
let { done } = iterator.next()
while (done === false) {
++count
done = iterator.next().done
}
return count
}
return 1
}
console.log(cycle(eval(values())))