int main(){ std::cout << std::endl; int local = 10; auto addLocal = [&local](int b){ return local + b; }; // 3 auto add10 = makeLambda(5); std::cout << "addLocal(5): " << addLocal(5) << std::endl; // 4 std::cout << "add10(5): " << add10(5) << std::endl; // 5 std::cout << std::endl; }
/* * (define foo 1) * (define (foo n) n) */ void definitionValue(Register result, Register exp) { Register params = reg0; Register body = reg1; cdr(result, exp); car(result, result); if (isSymbol(result)) { cdr(result, exp); cdr(result, result); car(result, result); } else { save(reg0); save(reg1); cdr(params, exp); car(params, params); cdr(params, params); cdr(rbody, exp); cdr(body, body); makeLambda(result, params, body); restore(reg1); restore(reg0); } }