Questions tagged «callcc»

3
延续和回调之间有什么区别?
我一直在浏览整个网络,以寻找关于连续性的启示,而且令人困惑的是,最简单的解释如何如此彻底地混淆了像我这样的JavaScript程序员。当大多数文章解释Scheme中代码的延续或使用monad时尤其如此。 现在,我终于认为我已经理解了延续的本质,我想知道我确实知道的是事实。如果我认为正确的东西实际上不是真实的,那就是无知而不是启蒙。 所以,这就是我所知道的: 在几乎所有语言中,函数都会将值(和控件)显式返回给其调用方。例如: var sum = add(2, 3); console.log(sum); function add(x, y) { return x + y; } 运行代码段隐藏结果展开摘要 现在,使用具有一流功能的语言,我们可以将控件和返回值传递给回调,而不是显式返回给调用方: add(2, 3, function (sum) { console.log(sum); }); function add(x, y, cont) { cont(x + y); } 运行代码段隐藏结果展开摘要 因此,我们从另一个函数继续,而不是从一个函数返回值。因此,此功能称为第一个功能的延续。 那么,延续和回调之间有什么区别?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.