javascript - 在 JavaScript 中使用延续的库/编译器

标签 javascript continuations

我正在寻找一个JavaScript库/编译器,它允许开发人员使用Scheme(或Rhino)中的延续。例如,这个库应该允许我们做一些类似的事情:

var kont;
function add(x,y) {
  return x +
        (function() {kont = new Continuation(); return y;})();
}

var executed = false;  //avoiding infinite recursion
show(add(5,1));        //show 6

if (!executed) {
  executed = true; 
  kont(20); // show 25 because the "y" binding is changed
}  

var result = cont(20); 

此代码背后的要点是:a) 捕获和 b) 恢复 JavaScript 脚本的控制流(或执行)。为了恢复执行,我认为“捕获”应该是像“kont = new Continuation()”这样的一流值

我搜索了库,但只找到了 jwacs ( http://chumsley.org/jwacs/ ),但该项目已停止。遗憾的是,Babel ( https://babeljs.io/ ) 不支持它:(。

有什么帮助吗?

最佳答案

我认为您可能正在寻找的是 babel 支持的生成器: https://babeljs.io/learn-es2015/#ecmascript-2015-features-generators

关于javascript - 在 JavaScript 中使用延续的库/编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42442589/

相关文章:

java - 如何处理 Jetty 异常 - 长时间运行的 HTTP 请求超时,但它调用的进程永远不会终止并且 Jetty 不高兴

scheme - CPS转换后的管理redex到底是什么?

haskell - 从 Continuation monad 中的 IO monad 转义

javascript - 将 HTML 字符串解析为 DOM 并将其转换回字符串

javascript - 使用 jQuery/模块模式维护范围问题

asp.net - 在代码隐藏中添加一个表,使用 javascript getElementById 吗? ASP.NET

haskell - 何时在 Haskell 中毫无悔意地使用 CPS、共密度与反射

javascript - 无法选择类名为 : JQuery 的最后一个元素

javascript - 类型错误:处理程序未定义

haskell - Curry-Howard 对应于双重否定 ((a->r)->r) 或 ((a->⊥)->⊥) 吗?