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;
    
}
示例#2
0
文件: syntax.c 项目: jarvinet/scheme
/*
 * (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);
    }
}