假设我有以下功能:
function f(x) { return x + 1; }
function g(x) { return x * 2; }
function h() { return 5; }
如何将表达式f(g(h()))
转换为延续传递样式?我知道这h
会转化为:
function h(ret) { ret(5); }
但是,我不知道如何将表达式f(g(h()))
转换为 CPS。
另外,如果f
需要 2 个参数而不是 1 个呢?这在 CPS 中会是什么样子?
f
此外,如果g
根本不接受任何论点怎么办?这在 CPS 中看起来如何?