您可以在Javascript中以连续传递样式编写生成器吗?

问题描述

我试图更好地理解延续性和延续性传递风格。它们应该适合编写生成器,迭代器,协程等。

我知道Javascript已经内置了生成器,但是我认为以连续传递样式手动构建生成器将是一个不错的练习。 This blog post包含一些遍历数组的代码示例,

function logArray(arr) {
    forEachcps(arr,function (elem,index,next) {  // (*)
        console.log(elem);
        next();
    },function () {
        console.log("### Done");
    });
}
function forEachcps(arr,visitor,done) {  // (**)
    forEachcpsRec(0,arr,done)
}
function forEachcpsRec(index,done) {
    if (index < arr.length) {
        visitor(arr[index],function () {
            forEachcpsRec(index+1,done);
        });
    } else {
        done();
    }
}

但是我希望使用无限列表类型生成器,而不是遍历固定数组的生成器。我还希望调用者可以控制数字的获取频率(这是迭代器和生成器之间的区别,对吗?)。可以用Java语言完成吗? (或者,如果不是,那么用这种语言做的一种好语言是什么?只有Scheme吗?)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)